我试图使用pandas版本0.18.1绘制时间戳降水数据的条形图和时间戳流量数据的线图。我正在使用Anaconda的最新发行版,python 3.5。
如果我将它们绘制为线图,则一切都显示为正常。但是,当我将降水数据绘制成条形图时,我会在绘图区域外的绘图显示中绘制出非常奇怪的黑线。
这是我的代码,用于在两个子图上绘制它们,共享x轴:
import matplotlib.pyplot as plt
import pandas as pd
plt.style.use('ggplot')
pdf = pd.read_csv('precip.csv', delimiter=',', header=None, index_col=0)
pdf.columns = ['p']
qdf = pd.read_csv('manhole_B.csv', delimiter=',', header=None, index_col=0)
qdf.columns = ['q']
f, ax = plt.subplots(2, sharex=True)
pdf.plot.bar(ax=ax[0])
qdf.plot(ax=ax[1])
plt.show()
这是我得到的输出,在情节周围出现奇怪的黑线:
当绘制同一个子图时,我会得到一个类似的问题,辅助y轴。但是,将两个数据框绘制为线图,一切都正确显示。
任何人都可以帮我吗?我找不到有人发生类似问题的帖子。
编辑:这是数据的样子。它的范围超过两个月,每小时采样降水数据,每15分钟采样一次流量数据,因此,如果这些数据全部显示为刻度线或标签,那么就是线路的来源。在搜索刻度线问题后,我发现图表的显示方式相似,所以我正在研究如何限制刻度线和轴标签的数量。
6/1/2016 0:00 56.8
6/1/2016 0:15 52.1
6/1/2016 0:30 44.0
6/1/2016 0:45 43.6
6/1/2016 1:00 34.3
编辑:我已经让标签正确显示,将其添加到我的代码中,以便设置每周一次显示每小时数据的刻度标签。
n = 24*7
ticks = ax.xaxis.get_ticklocs()
ticklabels = [l.get_text() for l in ax.xaxis.get_ticklabels()]
ax.xaxis.set_ticks(ticks[::n])
ax.xaxis.set_ticklabels(ticklabels[::n])