matplotlib 从DateFrame图创建-空图

new9mtju  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(142)

我有一些不明白的地方,有一些问题。这是我处理后的数据:

year   date   power
0    2019  01-01  43.611
1    2019  01-02  40.811
2    2019  01-03  14.491
3    2019  01-04  12.649
4    2019  01-05   7.295
..    ...    ...     ...
726  2020  12-27   0.246
727  2020  12-28  10.500
728  2020  12-29  24.669
729  2020  12-30   0.000
730  2020  12-31   0.000

[731 rows x 3 columns]

我计算每一天的功率。接下来,我想将此数据框更改为一个带有2个图的图表(2019年和2020年)。
后thix代码我得到输出它:

ax = plt.gca()

year_data_2019 = wind_power_data[wind_power_data['year'] == '2019']
year_data_2019.plot(kind='line',x='date',y='power', ax=ax)

plt.show()

Graph 1 - image
旁边为当创建单时为2020年的图码:

ax = plt.gca()

year_data_2020 = wind_power_data[wind_power_data['year'] == '2020']
year_data_2020.plot(kind='line',x='date',y='power', ax=ax)
print(year_data_2020 )
plt.show()

输出:

year   date   power
365  2020  01-01  10.553
366  2020  01-02   0.045
367  2020  01-03   4.865
368  2020  01-04  70.155
369  2020  01-05  11.534
..    ...    ...     ...
726  2020  12-27   0.246
727  2020  12-28  10.500
728  2020  12-29  24.669
729  2020  12-30   0.000
730  2020  12-31   0.000

我的图表如下所示:(我不知道为什么)
Graph 2 - image
我想连接他们与一个和ofc的第2将显示正确的日期。连接后,他们都我得到:

ax = plt.gca()
year_data_2020 = wind_power_data[wind_power_data['year'] == '2020']
year_data_2020.plot(kind='line',x='date',y='power',ax=ax)
year_data_2019 = wind_power_data[wind_power_data['year'] == '2019']
year_data_2019.plot(kind='line',x='date', y='power',ax=ax)
plt.show()

Graph 3 - image
我的问题是。为什么图2显示这些不正确的数据?如何将它们连接成一个?我看到一些例子和问题是,我应该改变我的数据框架如下:

date   2019    2020
0    01-01  43.611  20.13

所以我得到了列“日期”日期为两个?即使01-01是相同的之前,但不是同一行???

pnwntuvh

pnwntuvh1#

您的数据集中有一个非常高的值。请删除此数据点或将绘图中的ylim参数设置为仅显示特定范围。
https://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.DataFrame.plot.html
若要不绘制数据点,您可以将数据限制在n倍标准差范围内的每一行。

year_data_2020[year_data_2020.power < year_data_2020.power.std()*3].plot(kind='line',x='date',y='power', ax=ax)

相关问题