21.【问答题】(60分) 读取people.csv文件数据,按照以下要求绘制图表 (1)绘制显示人口变化趋势图表:添加轴标签、刻度标签、标题、图例、显示网格; (2)绘制不同年份的人口数量堆积柱形图,根据需要添加辅助元素,显示每年总人数;
时间: 2024-11-15 09:21:42 浏览: 30
要读取并分析`people.csv`文件中的数据,并按照所描述的要求绘制图表,首先你需要使用Python的数据处理库pandas来加载数据,然后利用matplotlib或seaborn等绘图库创建图形。以下是步骤概述:
1. **导入所需库**:
```python
import pandas as pd
import matplotlib.pyplot as plt
```
2. **加载数据**:
```python
data = pd.read_csv('people.csv')
```
3. **检查数据并准备数据**:
确保数据集中有"year"和"population"列,并按"year"排序。
4. **人口变化趋势线图**:
```python
fig1, ax1 = plt.subplots()
ax1.plot(data['year'], data['population'])
# 添加轴标签、刻度标签、标题和图例
ax1.set_xlabel('Year')
ax1.set_ylabel('Population', color='blue')
ax1.title.set_text('Population Trend Over Time')
ax1.grid(True)
plt.legend(['Population'], loc='upper left')
# 可选:设置子图颜色
ax1.tick_params(axis='y', labelcolor='blue')
```
5. **人口数量堆积柱状图**:
```python
fig2, ax2 = plt.figure(figsize=(10, 6))
ax2.bar(data['year'], data['population'], stacked=True)
# 添加辅助元素和总人数
for p in ax2.patches:
width, height = p.get_width(), p.get_height()
total = data.loc[p.get_x() + width / 2, 'population'].sum()
ax2.text(p.get_x() + width / 2, height + 2, f'{total:.0f}', ha="center")
# 设置堆叠柱状图的相关属性
ax2.set_xlabel('Year')
ax2.set_ylabel('Population')
ax2.title.set_text('Population Distribution by Year')
ax2.yaxis.grid(True)
```
完成上述步骤后,你应该会看到符合要求的两个图表。记得运行`plt.show()`以显示图表。
阅读全文