首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用颜色条指定数据相对于特定范围的变化

如何使用颜色条指定数据相对于特定范围的变化
EN

Stack Overflow用户
提问于 2020-05-15 23:37:30
回答 1查看 29关注 0票数 1

我现在有一个PM2.5特定区域的AQI数据,我想为它绘制每日数据,并为不同范围的AQI数据指定颜色

代码语言:javascript
复制
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()

在运行上面的代码后,我得到了错误-

代码语言:javascript
复制
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阿拉巴马州鲍德温费尔霍普

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-15 23:52:58

你需要改变

代码语言:javascript
复制
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创建三元组,而不需要循环。这应该会更有效率。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61823042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档