У меня есть pandas.DataFrame
daily_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
выглядит так:
No lines representing Total TODO/TODOE count
and First Derivative
are drawn.
What am I doing wrong? How do I need to change the code above in order to generate a graph like shown below (day on the x axis,
Total TODO/TODOE count
and First Derivative
on the 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