使用city_temp.csv,数据集中分别为month,2018平均气温,2019平均气温,2020平均气温,绘制某城市每年气温变化的南丁格尔玫瑰图
时间: 2024-05-16 12:17:24 浏览: 119
好的,让我们开始吧!
首先,我们需要导入一些必要的库:pandas、matplotlib 和 seaborn。请确保你已经安装了这些库,如果没有,请使用 pip install 命令安装。
```python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
```
接下来,我们需要读取数据集并对其进行处理,以便我们可以使用它来绘制南丁格尔玫瑰图。我们将使用 pandas 库的 read_csv() 函数读取数据集:
```python
df = pd.read_csv("city_temp.csv")
```
接下来,我们需要将数据集中的每一年的气温值进行分组,并将它们放入一个列表中。我们可以使用 pandas 库的 groupby() 方法来实现这一点:
```python
temp_2018 = df.groupby(['month'])['2018'].mean().tolist()
temp_2019 = df.groupby(['month'])['2019'].mean().tolist()
temp_2020 = df.groupby(['month'])['2020'].mean().tolist()
```
现在,我们已经将每年的气温值分组并将它们放入一个列表中,接下来我们将使用 seaborn 库的 barplot() 方法绘制南丁格尔玫瑰图:
```python
plt.figure(figsize=(10,6))
sns.set_style("whitegrid")
sns.barplot(x=temp_2018, y=[i for i in range(1,13)], color='red', alpha=0.7)
sns.barplot(x=temp_2019, y=[i for i in range(1,13)], color='green', alpha=0.7)
sns.barplot(x=temp_2020, y=[i for i in range(1,13)], color='blue', alpha=0.7)
plt.title("City Temperature Change (2018-2020)", fontsize=14)
plt.xlabel("Temperature (°C)", fontsize=12)
plt.ylabel("Month", fontsize=12)
plt.legend(labels=['2018', '2019', '2020'])
plt.show()
```
这个代码块将会绘制你所需的南丁格尔玫瑰图。注意,我们使用了 barplot() 方法的三个实例来绘制三年的气温变化,并使用 legend() 方法来添加图例。
完整代码如下所示:
阅读全文