【发布时间】:2020-11-22 15:58:49
【问题描述】:
我有一个pandas.DataFramedaily_data_f_no_nr,内容如下(print(daily_data_f_no_nr) 的结果):
Day Total TODO/TODOE count First Derivative
0 2020-05-16 35 0.0
1 2020-05-17 35 0.0
2 2020-05-18 35 0.0
3 2020-05-19 35 0.0
4 2020-05-20 35 0.0
.. ... ... ...
74 2020-07-29 152 0.0
75 2020-07-30 152 0.0
76 2020-07-31 152 0.0
77 2020-08-01 152 0.0
78 2020-08-02 152 0.0
我想创建一个折线图
-
Day在 x 轴上并且 -
Total TODO/TODOE count和First Derivative在 y 轴上。
我为此使用以下代码:
fig = daily_data_f_no_nr.plot(kind='line', figsize=(20, 16), fontsize=26, xticks=daily_data_f_no_nr['Day'], yticks=daily_data_f_no_nr['Total TODO/TODOE count'], y=['Total TODO/TODOE count', 'First Derivative']).get_figure()
fig.savefig(CHART_FILE)
CHART_FILE 看起来像这样:
没有绘制代表Total TODO/TODOE count 和First Derivative 的线条。
我做错了什么?我如何需要更改上面的代码才能生成如下所示的图表(x 轴上的日期,
Total TODO/TODOE count 和 First Derivative 在 y)?
更新1:如果我将代码更改为
fig = daily_data_f_no_nr.plot(kind='line', figsize=(20, 16), fontsize=26, xticks=daily_data_f_no_nr['Day'], yticks=daily_data_f_no_nr['Total TODO/TODOE count'],x='Day', y=['Total TODO/TODOE count', 'First Derivative']).get_figure()
我得到了错误
Traceback (most recent call last):
File "py\todo-count-delta.py", line 113, in <module>
fig = daily_data_f_no_nr.plot(kind='line', figsize=(20, 16), fontsize=26, xticks=daily_data_f_no_nr['Day'], yticks=daily_data_f_no_nr['Total TODO/TODOE count'],x='Day', y=['Total TODO/TODOE count', 'First Derivative']).get_figure()
File "C:\Users\User\anaconda3\lib\site-packages\pandas\plotting\_core.py", line 847, in __call__
return plot_backend.plot(data, kind=kind, **kwargs)
File "C:\Users\User\anaconda3\lib\site-packages\pandas\plotting\_matplotlib\__init__.py", line 61, in plot
plot_obj.generate()
File "C:\Users\User\anaconda3\lib\site-packages\pandas\plotting\_matplotlib\core.py", line 266, in generate
self._adorn_subplots()
File "C:\Users\User\anaconda3\lib\site-packages\pandas\plotting\_matplotlib\core.py", line 476, in _adorn_subplots
ax.set_xticks(self.xticks)
File "C:\Users\User\anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 3350, in set_xticks
ret = self.xaxis.set_ticks(ticks, minor=minor)
File "C:\Users\User\anaconda3\lib\site-packages\matplotlib\axis.py", line 1755, in set_ticks
self.set_view_interval(min(ticks), max(ticks))
File "C:\Users\User\anaconda3\lib\site-packages\matplotlib\axis.py", line 1892, in setter
setter(self, min(vmin, vmax, oldmin), max(vmin, vmax, oldmax),
TypeError: '<' not supported between instances of 'numpy.float64' and 'Timestamp'
更新2:这是print(daily_data_f_no_nr.info())的输出:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 79 entries, 0 to 78
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Day 79 non-null datetime64[ns]
1 Total TODO/TODOE count 79 non-null int64
2 First Derivative 79 non-null float64
dtypes: datetime64[ns](1), float64(1), int64(1)
memory usage: 2.0 KB
None
【问题讨论】:
标签: python pandas datetime matplotlib data-visualization