如何使用Python的Matplotlib重绘图像?
前言
Matplotlib是一个Python的图形框架库,可以用来创建各种类型的图形,包括线性图、散点图、条形图等等。它的绘图风格类似于Matlab。在本文中,我们将介绍如何使用Matplotlib重构图像。
安装Matplotlib
在使用Matplotlib之前,我们需要先安装它。我们可以使用pip安装最新版本的Matplotlib:
pip install matplotlib
获取数据
在本文中,我们将使用中国2020年新型冠状病毒疫情的数据,数据源可以从GitHub上下载。我们将使用pandas库读取数据。
import pandas as pd
url = 'https://raw.githubusercontent.com/BlankerL/DXY-COVID-19-Data/master/csv/DXYArea.csv'
df = pd.read_csv(url)
df = df[df['countryEnglishName'] == 'China'] # 筛选中国的数据
df['updateTime'] = pd.to_datetime(df['updateTime']).dt.date # 只保留日期部分
df = df.groupby('updateTime')['confirmedCount'].sum().reset_index() # 按天统计每日确诊数
绘制原始图像
我们首先使用Matplotlib绘制原始图像:
import matplotlib.pyplot as plt
plt.plot(df['updateTime'], df['confirmedCount'], marker='o')
plt.title('Daily Confirmed Cases of COVID-19 in China')
plt.xlabel('Date')
plt.ylabel('Confirmed Cases')
plt.show()
这将生成一个线性图,表示每日确诊数
自定义样式
Matplotlib允许我们自定义图像的样式以及各个元素的布局。例如,我们可以更改线条的颜色、宽度和样式,以及添加网格线:
plt.plot(df['updateTime'], df['confirmedCount'], color='orange', linewidth=2, linestyle='dashed', marker='o')
plt.grid(axis='y')
plt.title('Daily Confirmed Cases of COVID-19 in China')
plt.xlabel('Date')
plt.ylabel('Confirmed Cases')
plt.show()
这将生成一个样式更改后的图像
绘制多个子图
我们可以使用Matplotlib绘制多个子图,以展示相关的数据。例如,我们可以绘制过去一周内每日新增患者和治愈患者的数量。我们可以使用plt.subplots()函数创建多个子图,例如:
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6))
ax1.plot(df['updateTime'][:-1], df['confirmedCount'].diff().fillna(0), color='red', linewidth=2)
ax1.set_title('Daily New Confirmed Cases in China')
ax1.set_xlabel('Date')
ax1.set_ylabel('New Cases')
ax2.plot(df['updateTime'], df['curedCount'], color='green', linewidth=2, linestyle='dashed', marker='o')
ax2.set_title('Cumulative Cured Cases in China')
ax2.set_xlabel('Date')
ax2.set_ylabel('Cured Cases')
plt.show()
这将生成包含两个子图的图形
结论
Matplotlib是一个功能强大的图形框架库,可以用来创建各种类型的图形。在本文中,我们演示了如何使用Matplotlib绘制原始图像、自定义样式和布局、以及如何绘制多个子图。这些基本技能对于数据可视化非常有用。您可以尝试在自己的数据上使用Matplotlib来探索更多有用的图形。