南丁格尔玫瑰图绘制某城市多年气温变化图表
时间: 2023-06-20 18:05:19 浏览: 169
南丁格尔玫瑰图实现-python+matplotlib绘制极坐标以及一些基础的知识
5星 · 资源好评率100%
南丁格尔玫瑰图是一种用于可视化数据的图表类型,通常用于展示分类变量的频率分布。在绘制某城市多年气温变化图表时,可以将温度分为几个等级,比如寒冷、凉爽、温暖和炎热等。然后,将每个等级的频率用不同的颜色表示,并使用半圆形的扇形区域来展示每个等级的频率。
以下是使用 Python 和 matplotlib 库绘制南丁格尔玫瑰图的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 定义数据
temperatures = [10, 15, 20, 25, 30, 35, 40, 45]
years = np.arange(2010, 2020)
data = np.random.randint(10, size=(len(years), len(temperatures)))
# 绘制南丁格尔玫瑰图
theta = np.linspace(0, 2*np.pi, len(temperatures), endpoint=False)
radii = np.linspace(0, 1, len(years))
width = (2*np.pi) / len(temperatures)
fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(111, projection='polar')
ax.set_theta_zero_location('N')
ax.set_theta_direction(-1)
bars = []
for i, year in enumerate(years):
color = plt.cm.viridis(radii[i])
bar = ax.bar(theta, data[i], width=width, bottom=radii[i], color=color, alpha=0.5)
bars.append(bar)
# 添加标签
ax.set_xticklabels(['Cold', 'Cool', 'Mild', 'Warm', 'Hot'])
ax.set_yticklabels(years)
ax.set_title('Temperature Change in a City (2010-2019)')
# 添加图例
legend = ax.legend(bars, years, loc='center', bbox_to_anchor=(0.5, -0.1), ncol=5)
plt.show()
```
上述代码会生成一个南丁格尔玫瑰图,其中每个扇形区域表示一个年份中各个温度等级的频率。您可以根据自己的数据和需求进行调整。
阅读全文