我正在尝试绘制一些数据,但我不知道如何在图表的x轴上添加日期值。这是我的代码:
import pandas as pd
import numpy as np
%matplotlib inline
%pylab inline
import matplotlib.pyplot as plt
pylab.rcParams['figure.figsize'] = (15, 9)
df["msft"].plot(grid = True)
图像的描述是一个图,但x轴只有数字,但我正在寻找在x轴上出现的日期。日期位于数据框的日期列中。
以下是数据框的样子:
date msft nok aapl ibm amzn
1 2018-01-01 09:00:00 112 1 143 130 1298
2 2018-01-01 10:00:00 109 10 185 137 1647
3 2018-01-01 11:00:00 98 11 146 105 1331
4 2018-01-01 12:00:00 83 3 214 131 1355
你能为我所缺少的东西提供一些帮助吗?
答案 0 :(得分:2)
你的专栏date
只是pandas的另一栏,你必须告诉程序你想要针对这个特定的一个。一种方法是对这一栏进行绘图:
from matplotlib import pyplot as plt
import pandas as pd
#load dataframe
df = pd.read_csv("test.txt", delim_whitespace=True)
#convert date column to datetime object, if it is not already one
df["date"] = pd.to_datetime(df["date"])
#plot the specified columns vs dates
df.plot(x = "date", y = ["msft", "ibm"], kind = "line", grid = True)
plt.show()
有关更多熊猫情节选项,请查看the documentation。
另一种方法是将date
设置为数据帧的索引。然后你可以使用你的方法:
df.set_index("date", inplace = True)
df[["msft", "ibm"]].plot(grid = True)
plt.show()
自动日期标签可能不是您要显示的内容。但是有一些方法可以格式化输出和you can find examples on SO。
答案 1 :(得分:-1)
这样做的一种方法是set_xticklabels
功能,虽然T先生的答案是正确的方法
ax = plt.subplot(111)
df["msft"].plot(grid = True)
ax.set_xticklabels(df['date'])
plt.xticks(np.arange(4))
提供的数据: