如何在图上添加x轴?

时间:2018-05-23 03:36:43

标签: python python-3.x matplotlib plot

我正在尝试绘制一些数据,但我不知道如何在图表的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) 

enter image description here

图像的描述是一个图,但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

你能为我所缺少的东西提供一些帮助吗?

2 个答案:

答案 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))

提供的数据:

set_xticklabels