已知每一天的AQI,按照标准判断这一天的空气质量好坏并进行周期性统计次数,做出每一季节不同标准的占比,并做出四个相对应的饼图代码python
时间: 2024-05-16 17:18:16 浏览: 67
下面是一个简单的实现过程:
```python
import numpy as np
import matplotlib.pyplot as plt
# 假设AQI数据保存在列表aqi中,长度为365
# 假设标准为:AQI小于等于50为优,51到100为良,101到150为轻度污染,151到200为中度污染,201到300为重度污染,大于300为严重污染
aqi = [62, 78, 120, 87, 212, 305, ...] # 省略其他数据
# 将每一天的AQI按照标准进行分类,并统计每种标准的出现次数
count = [0, 0, 0, 0, 0, 0] # 分别表示优、良、轻度污染、中度污染、重度污染、严重污染的出现次数
for val in aqi:
if val <= 50:
count[0] += 1
elif val <= 100:
count[1] += 1
elif val <= 150:
count[2] += 1
elif val <= 200:
count[3] += 1
elif val <= 300:
count[4] += 1
else:
count[5] += 1
# 每个季节的标准占比,按照优、良、轻度污染、中度污染、重度污染、严重污染的顺序存储
spring = [count[0]/len(aqi), count[1]/len(aqi), count[2]/len(aqi), count[3]/len(aqi), count[4]/len(aqi), count[5]/len(aqi)]
summer = [count[0]/len(aqi), count[1]/len(aqi), count[2]/len(aqi), count[3]/len(aqi), count[4]/len(aqi), count[5]/len(aqi)]
autumn = [count[0]/len(aqi), count[1]/len(aqi), count[2]/len(aqi), count[3]/len(aqi), count[4]/len(aqi), count[5]/len(aqi)]
winter = [count[0]/len(aqi), count[1]/len(aqi), count[2]/len(aqi), count[3]/len(aqi), count[4]/len(aqi), count[5]/len(aqi)]
# 绘制四个饼图
labels = ['优', '良', '轻度污染', '中度污染', '重度污染', '严重污染']
colors = ['#00CD00', '#ADFF2F', '#FFD700', '#FFA500', '#FF4500', '#FF0000']
plt.figure(figsize=(15, 5))
plt.subplot(141)
plt.pie(spring, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title('Spring')
plt.subplot(142)
plt.pie(summer, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title('Summer')
plt.subplot(143)
plt.pie(autumn, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title('Autumn')
plt.subplot(144)
plt.pie(winter, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title('Winter')
plt.show()
```
这里假设AQI数据已经预先处理好,保存在列表aqi中。对于标准的判断,可以根据实际情况进行修改。对于每个季节的标准占比,这里简单地假设四个季节的占比相同。最后,使用matplotlib库绘制四个饼图。
阅读全文