【发布时间】:2017-02-04 23:59:16
【问题描述】:
我使用 matplotlib 绘制多条不同颜色的线。它工作得很好,但不知何故,所有绘制的线都连接到最后一个值的 (0,0)。
X 轴:bin这是我的时间范围
Y 轴:count,其中包含我想要绘制的值
我的数据框如下所示:
>df3.head()
start_time count date_day bin cw
0 2016-05-02 00:00:00 45 2016-05-02 00:00:00 18
1 2016-05-02 00:15:00 35 2016-05-02 00:15:00 18
2 2016-05-02 00:30:00 34 2016-05-02 00:30:00 18
3 2016-05-02 00:45:00 31 2016-05-02 00:45:00 18
4 2016-05-02 01:00:00 34 2016-05-02 01:00:00 18
>df3.tail()
start_time count date_day bin cw
17563 2016-10-31 22:45:00 114 2016-10-31 22:45:00 44
17564 2016-10-31 23:00:00 94 2016-10-31 23:00:00 44
17565 2016-10-31 23:15:00 121 2016-10-31 23:15:00 44
17566 2016-10-31 23:30:00 127 2016-10-31 23:30:00 44
17567 2016-10-31 23:45:00 135 2016-10-31 23:45:00 44
这就是我的绘图方式:
我按日历周分隔行cw
cw = np.arange(18,45,1)
for x in cw:
df4 = df3[df3.cw == x]
xa = df4['bin']
ya = df4['count']
plt.plot(xa, ya)
plt.show()
我得到的是: Plot (labels and axis are not formatted yet..)
对于df3.any().isnull(),我没有得到任何应该没问题的 NaN,但它仍然绘制 (0,0)。
df3.any().isnull()
Out[297]:
start_time False
count False
date_day False
bin False
cw False
dtype: bool
关于如何摆脱这条连接线到 (0,0) 的任何想法
非常感谢!
【问题讨论】:
-
第一个快速猜测:您试图绘制一周中整整 7 天的时间,但在图中您只能看到一天的数据。这对你有意义吗?您希望其他 6 天的数据如何处理?
-
是的,没错。我的 DataFrame 只包含星期一。我只是使用
cw来分隔行,因为我一开始不知道如何分隔或切片我的数据,因为start_time是连续的(尽管只有星期一),但我的bin列是一个重复序列。
标签: python pandas matplotlib plot