我想随着时间的推移绘制一些数据。
我的数据框有一列date
,格式为2015-11-25 10:00:00
(datetime64)
另一列data
是格式1.53
(只是一系列数字float64)
现在它变得棘手,是样品是连续拍摄的。 例如:
2015-11-20 00:00:00
到2015-11-21 00:00:00
2015-11-22 00:00:00
到2015-11-23 00:00:00
2015-11-24 00:00:00
到2015-11-25 00:00:00
所有数据都是一个在另一个之下,因此数据中没有间隙。
所以当我执行我的代码时:
ax = df.plot(x='Date', y='Data')
fig = ax.get_figure()
我得到的图表填写了我从未测量过的日期数据。 我想要的只是显示的是包含我测量的 ACTUAL 日期数据的图表。我不明白为什么python推断这些数据点。 我该如何关闭此功能?
答案 0 :(得分:1)
Pandas的plot()函数默认创建一个线图。如果您只想绘制您拥有的数据点,请改为创建散点图。
ax = df.plot(kind='scatter', x='Date', y='Data')
请参阅:http://pandas.pydata.org/pandas-docs/stable/visualization.html#visualization-scatter
修改强>
由于pandas的Scatter Plot绘图功能需要x轴和y轴的数字列,因此您将遇到原始答案的问题。最好的方法是直接使用matplotlib绘图。对于您要做的事情,以下示例应该有效:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot_date(df['Date'], df['Data'])