我现在有一个PM2.5特定区域的AQI数据,我想为它绘制每日数据,并为不同范围的AQI数据指定颜色
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.read_csv('daily_44201_2019.csv')
df = df[['Date Local', 'AQI', 'State Name', 'County Name', 'City Name']]
df = df.iloc[0:152]
AQI_mean = df['AQI'].mean()
AQI = np.array(df['AQI'].tolist())
c = []
for i in range(0, len(AQI)):
if AQI[i] < AQI_mean:
c.append('red')
else:
c.append('green')
plt.figure()
plt.plot(df['Date Local'], df['AQI'], color=c)
plt.axhline(y=AQI_mean, color='black', linewidth=1)
plt.show()在运行上面的代码后,我得到了错误-
ValueError: Invalid RGBA argument: ['red', 'red', 'red', 'red', 'red', 'green', 'green', 'green', 'green', 'red', 'red', 'red', ...]以下是数据-
日期当地AQI州名称县名称城市名称
0 2019-02-28 12.0阿拉巴马州鲍德温费尔霍普
1 2019-03-01 27.0阿拉巴马州鲍德温费尔霍普
2019-03-02 21.0阿拉巴马州鲍德温费尔霍普
2019-03-03 24.0阿拉巴马州鲍德温费尔霍普
2019-03-04 31.0阿拉巴马州鲍德温费尔霍普
发布于 2020-05-15 23:52:58
你需要改变
c = []
for i in range(0, len(AQI)):
if AQI[i] < AQI_mean:
c.append('red')
else:
c.append('green')
plt.figure()
plt.plot(df['Date Local'], df['AQI'], color=c)要使用RGB和scatter而不是plot。注您可以使用numpy创建三元组,而不需要循环。这应该会更有效率。
c = np.zeros((len(AQI), 3)
c[:, 0] = (AQI < AQI_mean).astype(int)
c[:, 1] = 1 - c[:, 0]
plt.figure()
plt.scatter(df['Date Local'], df['AQI'], color=c)https://stackoverflow.com/questions/61823042
复制相似问题