【发布时间】:2016-05-23 15:58:53
【问题描述】:
我正在使用 pandas 内置的 .plot 命令来绘制一些较长的时间序列。
为什么会这样,我该如何改变它?以 0 结尾的年份会更好看。
尝试使用 plt.xlim('1966', '2013') 或类似的方式设置轴的窗口也不会对以 9 结尾的年份(和 4,如果你“放大”,如上所示)做任何事情。
它似乎也与源数据框中日期的开始和结束没有任何关系。
这是一个最小的空示例:
dfdates = pd.date_range('01/01/1942', '01/01/2018', freq = 'MS')
dfzeros = np.zeros((len(dfdates)))
header_test = pd.MultiIndex.from_product([['zero'],['zero'], ['zero'], ['zero'], ['zero'], ['zero']], names = ['stuff1', 'stuff2', 'stuff3', 'stuff4', 'stuff5', 'stuff6'])
Big_df = pd.DataFrame(dfzeros, index = dfdates, columns = header_test)
Big_df.plot()
plt.show()
而且我无法更改末尾的 9,无论我是否设置了 plt.xlim 的窗口,或者我是否更改了 dfdates 的开始和结束年、月或日,所以这并不像“开始数据框+ 10年”或类似的,我的大标题也不会影响这些。
我可能可以为每手设置更合理的刻度,但我更想知道为什么它如此执着于使用年份结尾为 9。
编辑
因此,当我使用@lanery 的答案进行绘图时,会发生以下情况:
请注意我指定自定义刻度的绘图区域中的双刻度(从 1965 年开始)。
我所有的数据框都从 1940 年开始,但很多都是空的,直到我开始获取数据的某个点,这取决于所讨论的数据集。我可以用plt.xlim('1965','2015') 把它删掉,但我把它留在了这个情节中,以显示发生了什么。
【问题讨论】:
标签: python pandas matplotlib