看看下面的图表:

这是这个更大的数字的子情节:

我看到它有两个问题.首先,x轴标签相互重叠(这是我的主要问题).第二.x轴次网格线的位置似乎有点不稳定.在图表的左侧,它们看起来间隔适当.但在右边,它们似乎挤满了主要的网格线......好像主要的网格线位置不是小刻度线位置的正确倍数.
我的设置是我有一个DataFrame df,它有一个DatetimeIndex行和一个value包含浮点数的列.df如有必要,我可以在要点中提供内容的示例.df这篇文章的底部有十几行作为参考.
这是生成图形的代码:
now = dt.datetime.now()
fig, axes = plt.subplots(2, 2, figsize=(15, 8), dpi=200)
for i, d in enumerate([360, 30, 7, 1]):
ax = axes.flatten()[i]
earlycut = now - relativedelta(days=d)
data = df.loc[df.index>=earlycut, :]
ax.plot(data.index, data['value'])
ax.xaxis_date()
ax.get_xaxis().set_minor_locator(mpl.ticker.AutoMinorLocator())
ax.get_yaxis().set_minor_locator(mpl.ticker.AutoMinorLocator())
ax.grid(b=True, which='major', color='w', linewidth=1.5)
ax.grid(b=True, which='minor', color='w', linewidth=0.75)
Run Code Online (Sandbox Code Playgroud)
这里我最好的选择是让x轴标签相互重叠(在四个子图中的每一个中)?另外,单独(但不太紧急),左上方子图中的次要刻度问题是什么?
我在Pandas 0.13.1,numpy 1.8.0和matplotlib 1.4.x.
这里有一小段df供参考:
id scale tempseries_id value
timestamp
2014-11-02 14:45:10.302204+00:00 7564 F 1 68.0000
2014-11-02 14:25:13.532391+00:00 …Run Code Online (Sandbox Code Playgroud) 在制作熊猫数据框的条形图时,我一直在调试显示问题。
今天遇到一个奇怪的问题:
index: <class 'pandas.tseries.index.DatetimeIndex'>
count 83.000
mean 0.000
std 0.879
min -2.159
25% -0.605
50% 0.001
75% 0.658
max 2.254
Name: error, dtype: float64
Run Code Online (Sandbox Code Playgroud)
当我将数据绘制为时间序列时,它看起来不错:
plt.plot(errors.index, errors.values)
但是,如果我将其打印为条形图,则大多数条形图都不会出现:
plt.bar(errors.index, errors.values)
plt.gcf().autofmt_xdate()
Run Code Online (Sandbox Code Playgroud)
我认为条形图的数据条太多,无法很好地显示,但如果我直接从数据框中绘制条,则情况并非如此:
errors.plot(kind="bar")
但是,dataframe.plot 不能很好地处理这么多带有轴标签的条形……但它告诉我 plt.bar应该能够显示它。