我最近开始使用
dark chesterish
主题从
dunovank
和我
爱多好一个简单的
pandas.DataFrame.plot(
)看起来像开箱即用:
Snippet 1
:
# Theme from dunovank, exclude if not installed:
from jupyterthemes import jtplot
jtplot.style()
# snippet from pandas docs:
ts = pd.Series(np.random.randn(1000),index=pd.date_range('1/1/2000', periods=1000)).cumsum()
ax = ts.plot()
输出1:
但我想增加一个交替的背景色(似乎是所有与大新闻机构的愤怒)。岗位
How can I set the background color on specific areas of a pyplot figure?
很好地描述了如何做到这一点。而且很容易
数字x值
:
片段2
:
# imports
import pandas as pd
import numpy as np
from jupyterthemes import jtplot
# Sample data
np.random.seed(123)
rows = 50
dfx = pd.DataFrame(np.random.randint(90,110,size=(rows, 1)), columns=['Variable Y'])
dfy = pd.DataFrame(np.random.randint(25,68,size=(rows, 1)), columns=['Variable X'])
df = pd.concat([dfx,dfy], axis = 1)
jtplot.style()
ax = df.plot()
for i in range(0, 60, 20):
ax.axvspan(i, i+10, facecolor='lightgrey', alpha=0.025)
输出2:
但当X轴是时间或日期格式时(至少对我来说)会变得更混乱。这是因为我的两个例子中的轴是从这个
# in:
ax.lines[0].get_data()
# out:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
dtype=int64)
对此(缩写):
# in:
ts.plot().lines[0].get_data()
# out:
.
.
Period('2002-09-15', 'D'), Period('2002-09-16', 'D'),
Period('2002-09-17', 'D'), Period('2002-09-18', 'D'),
Period('2002-09-19', 'D'), Period('2002-09-20', 'D'),
Period('2002-09-21', 'D'), Period('2002-09-22', 'D'),
Period('2002-09-23', 'D'), Period('2002-09-24', 'D'),
Period('2002-09-25', 'D'), Period('2002-09-26', 'D')], dtype=object)
ts.plot().lines[0].get_data()
返回X轴上的数据。但是有没有办法知道Matplotlib在哪
呈现每个“jan”观测的垂直线
所以我可以更容易地找到黑色和灰色背景色交替的合适间隔?
谢谢你的建议!
编辑-还是有主题?
或者有人知道有没有一个主题可以自由使用?
我查过所有的主题
import matplotlib.pyplot as plt; print(plt.style.available)
和
Seaborn
但是没有成功。
编辑2-来自重要的Beingernest的建议解决方案,并激活切斯特里斯主题:
在我看来,这是一个完美的时间序列图设置(可能会删除样条曲线)