dataframe.plot排除缺少的数据

时间:2015-12-04 15:59:18

标签: python pandas dataframe

我想随着时间的推移绘制一些数据。 我的数据框有一列date,格式为2015-11-25 10:00:00(datetime64) 另一列data是格式1.53(只是一系列数字float64)

现在它变得棘手,是样品是连续拍摄的。 例如:

  1. 2015-11-20 00:00:002015-11-21 00:00:00
  2. 的第一个系列
  3. 2015-11-22 00:00:002015-11-23 00:00:00
  4. 的第二个系列
  5. 2015-11-24 00:00:002015-11-25 00:00:00
  6. 的第3个系列

    所有数据都是一个在另一个之下,因此数据中没有间隙。

    所以当我执行我的代码时:

    ax = df.plot(x='Date', y='Data') 
    fig = ax.get_figure()
    

    我得到的图表填写了我从未测量过的日期数据。 我想要的只是显示的是包含我测量的 ACTUAL 日期数据的图表。我不明白为什么python推断这些数据点。 我该如何关闭此功能?

1 个答案:

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