Python用matplotlib画2013-2023年新闻月平均数量情况条形图的代码
时间: 2024-01-22 20:17:58 浏览: 60
python使用Matplotlib画条形图
5星 · 资源好评率100%
以下是Python用matplotlib画2013-2023年新闻月平均数量情况条形图的代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 年月列表
years = list(range(2013, 2024))
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
year_months = [f"{year}-{month}" for year in years for month in months]
# 模拟数据,每个月随机一个数量
news_count = np.random.randint(0, 300, size=len(year_months))
# 计算每年每个月的平均数量
year_month_count = {}
for year in years:
for i, month in enumerate(months):
count = np.mean(news_count[(year - 2013) * 12 + i:(year - 2013) * 12 + i + 1])
year_month_count[f"{year}-{month}"] = count
# x轴和y轴数据
x = np.arange(len(year_months))
y = np.array([year_month_count[ym] for ym in year_months])
# 绘制条形图
plt.bar(x, y)
# 设置x轴标签
plt.xticks(x[::12], years, rotation=45)
# 设置y轴标签
plt.ylabel("Average Number of News")
# 设置标题
plt.title("Average Number of News per Month from 2013 to 2023")
# 显示图形
plt.show()
```
解释一下代码:
1. 首先定义了年月列表 `years` 和 `months`,以及年月字符串的列表 `year_months`,用于后面生成每个月的数据。
2. 接着使用 `numpy.random.randint()` 生成了模拟数据,每个月随机一个数量。
3. 然后计算了每年每个月的平均数量,存储在字典 `year_month_count` 中。
4. 接着生成了x轴和y轴的数据,其中x轴是年月的序号,y轴是对应的平均新闻数量。
5. 使用 `matplotlib.pyplot.bar()` 函数绘制了条形图,并设置了x轴标签、y轴标签和标题。
6. 最后使用 `matplotlib.pyplot.show()` 函数显示图形。
阅读全文