【问题标题】:stop connecting points in pandas time series plot在熊猫时间序列图中停止连接点
【发布时间】:2016-07-26 10:57:43
【问题描述】:

我在熊猫系列中有一些数据,当我输入时

 mydata.head()

我明白了:

                       BPM
timestamp   
2015-04-07 02:24:00    96.0
2015-04-07 02:24:00    96.0
2015-04-07 02:24:00    95.0
2015-04-07 02:24:00    95.0
2015-04-07 02:24:00    95.0

还有,使用时

 mydata.info() 

我明白了:

 <class 'pandas.core.frame.DataFrame'>
 DatetimeIndex: 33596 entries, 2015-04-07 02:24:00 to 2015-07-15 14:23:50
 Data columns (total 1 columns):
 BPM    33596 non-null float64
 dtypes: float64(1)
 memory usage: 524.9 KB

当我使用

进行绘图时
 import matplotlib.pyplot as pyplot

 fig, ax = pyplot.subplots()
 ax.plot(mydata)

我只是弄得一团糟,就像它把很多不应该连接在一起的点连接在一起。

我怎样才能把它整理出来以显示为适当的时间序列图?

【问题讨论】:

  • 你试过mydata.plot('.')
  • 您的数据是否按日期排序?
  • 在将字符串列解析为日期列时可能需要指定日期格式(例如 pd.todatetime(df['column'], format="%d-%m- %Y %H:%M:%S) ) 在将此列设置为索引之前。也许几天已经与几个月互换了。

标签: python pandas matplotlib series


【解决方案1】:

随便用

mydata.plot(style="o")

你应该得到一个没有线连接点的熊猫图。

【讨论】:

    【解决方案2】:

    只需告诉matplotlib 绘制标记而不是线条。例如,

    import matplotlib.pyplot as pyplot
    
    fig, ax = pyplot.subplots()
    ax.plot(my data, '+')
    

    如果您喜欢其他标记,可以更改它 (see this link)。

    你也可以直接从pandas绘图:

    mydata.plot('+')
    

    如果您真的想要线条,则需要在绘制数据之前对其进行排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-17
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 1970-01-01
      • 2016-05-07
      相关资源
      最近更新 更多