python - 如何绘制循环数组的多个线性图形?
问题描述
我有这个df
:
CODE DATE MONTH_DAY PP PP_INTERPOL
0 472606FA 2001-01-01 01-01 0.0 0.0
1 472606FA 2001-01-02 01-02 0.0 0.1
2 472606FA 2001-01-03 01-03 0.7 0.5
3 472606FA 2001-01-04 01-04 NaN NaN
4 472606FA 2001-01-05 01-05 NaN NaN
... ... ... ... ...
248220 47E2A75C 2021-04-26 04-26 0.3 0.3
248221 47E2A75C 2021-04-27 04-27 0.5 0.4
248222 47E2A75C 2021-04-28 04-28 0.5 0.5
248223 47E2A75C 2021-04-29 04-29 0.8 0.8
248224 47E2A75C 2021-04-30 04-30 NaN NaN
我正在为每个代码计算一些公式。所以我做了这个代码:
for code, data in df.groupby('CODE'):
rmsef1=np.sqrt(np.nanmean((data['PP']-interpolated_array1)**2))
rmsef2=np.sqrt(np.nanmean((data['PP']-interpolated_array2)**2))
rmsef3=np.sqrt(np.nanmean((data['PP']-interpolated_array3)**2))
rmsef4=np.sqrt(np.nanmean((data['PP']-interpolated_array4)**2))
rmsef5=np.sqrt(np.nanmean((data['PP']-interpolated_array5)**2))
.
.
.
.
rmsef20=np.sqrt(np.nanmean((data['PP']-interpolated_array20)**2))
rmses=np.array([rmsef1,rmsef2,rmsef3,rmsef4,
rmsef5,rmsef6,rmsef7,rmsef8,
rmsef9,rmsef10,rmsef11,rmsef12,
rmsef13,rmsef14,rmsef15,rmsef16,
rmsef17,rmsef18,rmsef19,rmsef20])
所以我会得到与代码数量一样多的 rmses 变量(rmses 是一个包含 20 个浮点值的数组)。我想在同一个图形(线性图)中绘制所有这些 rmses,类似于此图像:
所以我不确定我应该如何或在哪里使用plt.plot
. 或者也许我需要创建另一个循环。
你介意帮助我吗?提前致谢。
解决方案
无需添加额外的循环。在您已经存在的 for 循环中,plt.plot
在计算rmses
值后立即添加。根据您的数据框中有多少codes
,您可能需要添加一个legend
以使您的图表更易于阅读。您可以通过添加label=code
作为参数来做到这一点,并在循环外plt.plot
添加。plt.legend
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('sample.csv')
for code, data in df.groupby('CODE'):
rms_1_20 = [data.iloc[i]['PP'] for i in range(20)]
rmses = rms_1_20 # just to explicitate the aquisition of 20 RMS values.
plt.plot(range(len(rmses)), rmses, label=code)
plt.legend(loc="upper right")
plt.show()
推荐阅读
- typescript - ionic 4 - 获取离子切换值作为文本输入并在选择一个选项时关闭所有其他开关
- azure-devops - Azure-DevOps 克隆将引用显示为警告
- excel - 创建数据透视表:错误 - 数据透视表字段名称无效
- scala - 如何使用 Scala Spark 快速处理数百万个小型 JSON 文件?
- python - 无法模拟来自测试函数的函数调用的函数调用
- swiftui - SwiftUI iOS 是唯一的还是可以用于其他 Apple 平台的?
- python - 如何生成 matplotlib 图并保持其大小
- javascript - 如何根据浏览器的大小使用 JavaScript 添加 css 样式
- ruby-on-rails - 查询序列化属性不起作用
- javascript - D3.js 可观察力布局,标签未出现