如何在Matplotlib中显示柱状图和线图?
Matplotlib是Python中最常用的绘图工具库之一,可以帮助我们快速、方便地绘制二维图形。其中柱状图和线图是常用的数据可视化方式,本篇文章将介绍如何使用Matplotlib实现柱状图和线图的绘制。
准备工作
在开始之前,我们需要先安装好Matplotlib库,并准备一些数据用于绘制示例图形。本篇文章中使用的数据为某城市2019年1月至12月每月降雨量和平均温度数据,格式为时间戳 + 降雨量 + 平均温度:
import numpy as np
# 生成时间戳
date = np.array(['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06', '2019-07', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12'], dtype='datetime64[M]')
# 每月降雨量和平均温度数据
rainfall = [15, 20, 10, 25, 30, 35, 40, 45, 50, 55, 60, 65]
avg_temp = [10, 12, 15, 20, 24, 28, 30, 29, 26, 22, 18, 13]
绘制柱状图
柱状图适用于比较不同类别之间的数据大小差异,通常用于显示离散型的数据。
基本柱状图
绘制基本的柱状图非常简单,只需要调用Matplotlib的
“`bar“`函数即可。“`bar“`函数的参数包括x轴数据、y轴数据以及可选的一些绘图属性,例如颜色、宽度、透明度等。
以下代码示例绘制了2019年每月的降雨量柱状图:
import matplotlib.pyplot as plt
# 绘制柱状图
plt.bar(date, rainfall, color='blue')
# 设置x轴、y轴标签
plt.xlabel('Date')
plt.ylabel('Rainfall/mm')
# 展示图形
plt.show()
其中,
“`date“`为x轴数据,“`rainfall“`为y轴数据。调用“`plt.bar“`函数绘制柱状图,函数中传入的参数依次为“`date“`、“`rainfall“`以及设置颜色为蓝色。
分组柱状图
有时候需要将不同种类的数据分别绘制在同一张图中,这时就需要使用分组柱状图。
以下代码示例通过指定柱状图的位置和宽度实现了降雨量和平均温度的分组柱状图:
# 设置柱状图位置和宽度
bar_width = 0.35
bar_locations = np.arange(len(date))
bar_locations_1 = bar_locations - bar_width/2
bar_locations_2 = bar_locations + bar_width/2
# 绘制分组柱状图
plt.bar(bar_locations_1, rainfall, width=bar_width, color='blue')
plt.bar(bar_locations_2, avg_temp, width=bar_width, color='red')
# 设置x轴、y轴标签
plt.xlabel('Date')
plt.ylabel('Rainfall / Temp')
plt.xticks(bar_locations, date)
# 显示图形
plt.show()
其中,
“`bar_locations“`为柱状图位置,使用“`numpy“`生成和时间戳长度相同的等差数列。使用“`bar_width“`指定每组柱状图的宽度,“`bar_locations_1“`和“`bar_locations_2“`分别表示降雨量和平均温度的柱状图位置,通过加减“`bar_width“`实现了分组效果。
运行以上程序,即可显示出如下的分组柱状图。
堆叠柱状图
堆叠柱状图用于显示同一种类数据中不同部分的比例,可以更直观地比较数据之间的差异。
以下代码示例绘制了2019年每月降雨量和平均温度的堆叠柱状图:
# 绘制堆叠柱状图
plt.bar(date, rainfall, color='blue')
plt.bar(date, avg_temp, bottom=rainfall, color='red')
# 设置x轴、y轴标签
plt.xlabel('Date')
plt.ylabel('Rainfall / Temp')
# 显示图形
plt.show()
其中,
“`bottom“`参数指定平均温度柱状图的底部为降雨量柱状图的顶部,从而实现了堆叠效果。
运行以上程序,即可显示出如下的堆叠柱状图。
绘制线图
线图适用于显示数据的趋势变化,通常用于显示连续型数据。
基本线图
绘制基本的线图也非常简单,只需要调用Matplotlib的
“`plot“`函数即可。“`plot“`函数的参数包括x轴数据、y轴数据以及可选的一些绘图属性,例如颜色、线型、标记类型等。
以下代码示例绘制了2019年每月平均温度的基本线图:
# 绘制基本线图
plt.plot(date, avg_temp, color='red', marker='o', markersize=5)
# 设置x轴、y轴标签
plt.xlabel('Date')
plt.ylabel('Avg Temp')
# 显示图形
plt.show()
其中,
“`marker“`参数指定数据点的标记形状,“`markersize“`参数指定标记大小。
运行以上程序,即可显示出如下的平均温度基本线图。
多条线图
有时候需要在同一张图中比较不同的数据,这时就需要用多条线图。
以下代码示例绘制了2019年每月降雨量和平均温度的多条线图:
# 绘制多条线图
plt.plot(date, rainfall, color='blue', marker='o', markersize=5, label='Rainfall')
plt.plot(date, avg_temp, color='red', marker='o', markersize=5, label='Avg Temp')
# 设置x轴、y轴标签
plt.xlabel('Date')
plt.ylabel('Rainfall / Temp')
# 设置图例
plt.legend()
# 显示图形
plt.show()
其中,
“`label“`参数指定了每条线图的标签,用于绘制图例。
运行以上程序,即可显示出如下的降雨量和平均温度的多条线图。
填充线图
有时候需要将数据之间的区域填充起来,以更直观地显示数据之间的差异。
以下代码示例绘制了2019年每月平均温度的填充线图:
# 绘制填充线图
plt.plot(date, avg_temp, color='red')
plt.fill_between(date, avg_temp, 0, alpha=0.1, color='red')
# 设置x轴、y轴标签
plt.xlabel('Date')
plt.ylabel('Avg Temp')
# 显示图形
plt.show()
其中,
“`fill_between“`函数用于填充颜色,第一个参数为x轴数据,第二个参数为y轴数据,第三个参数为填充的下边缘位置,这里设置为0,“`alpha“`参数用于设置填充颜色的透明度。
运行以上程序,即可显示出如下的平均温度填充线图。
结论
本篇文章介绍了如何在Matplotlib中绘制柱状图和线图。通过本文的示例,相信读者已经掌握了如何绘制基本、分组和堆叠柱状图,以及基本、多条和填充线图的方法。希望今后在数据可视化的过程中,能够有所帮助。