matplotlib之常见图像种类
Matplotlib 是一个用于绘制图表和数据可视化的 Python 库。它支持多种不同类型的图形,以满足各种数据可视化需求。以下是一些 Matplotlib 支持的主要图形种类:
-
折线图(Line Plot):
- 用于显示数据随时间或其他连续变量的变化趋势。
- 特点:能够显示数据的变化趋势,反映事物的变化情况。(变化)
plt.plot()
函数用于创建折线图。
示例:
import matplotlib.pyplot as plt
import random
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
# 0.准备数据 x = range(60) y_shanghai = [random.uniform(15, 18) for i in x] y_beijing = [random.uniform(1, 3) for i in x] # 1.创建画布 # plt.figure(figsize=(20, 8), dpi=100) fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=100) # 2.绘制图像 # plt.plot(x, y_shanghai, label="上海") # plt.plot(x, y_beijing, color="r", linestyle="--", label="北京") axes[0].plot(x, y_shanghai, label="上海") axes[1].plot(x, y_beijing, color="r", linestyle="--", label="北京") # 2.1 添加x,y轴刻度 # 设置x,y轴刻度 x_ticks_label = ["11点{}分".format(i) for i in x] y_ticks = range(40) # 修改x,y轴坐标刻度显示 # plt.xticks(x_ticks_label[::5]) # 坐标刻度不可以直接通过字符串进行修改 # plt.xticks(x[::5], x_ticks_label[::5]) # plt.yticks(y_ticks[::5]) axes[0].set_xticks(x[::5]) axes[0].set_yticks(y_ticks[::5]) axes[0].set_xticklabels(x_ticks_label[::5]) axes[1].set_xticks(x[::5]) axes[1].set_yticks(y_ticks[::5]) axes[1].set_xticklabels(x_ticks_label[::5]) # 2.2 添加网格显示 # plt.grid(True, linestyle="--", alpha=1) axes[0].grid(True, linestyle="--", alpha=1) axes[1].grid(True, linestyle="--", alpha=1) # 2.3 添加描述信息 # plt.xlabel("时间") # plt.ylabel("温度") # plt.title("中午11点-12点某城市温度变化图", fontsize=20) axes[0].set_xlabel("时间") axes[0].set_ylabel("温度") axes[0].set_title("中午11点-12点某城市温度变化图", fontsize=20) axes[1].set_xlabel("时间") axes[1].set_ylabel("温度") axes[1].set_title("中午11点-12点某城市温度变化图", fontsize=20) # 2.4 图像保存 plt.savefig("./test.png") # 2.5 显示图例 # plt.legend(loc=0) axes[0].legend(loc=0) axes[1].legend(loc=0) # 3.图像显示 plt.show()
-
散点图(Scatter Plot):
- 用于显示两个变量之间的关系,每个数据点表示一个观测值。即两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式
- 特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律或2个变量的关系)
plt.scatter()
函数用于创建散点图。
import matplotlib.pyplot as plt from pylab import mpl # 设置显示中文字体 mpl.rcParams["font.sans-serif"] = ["SimHei"] # 设置正常显示符号 mpl.rcParams["axes.unicode_minus"] = False # 0.准备数据 x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01, 20.67, 288.64, 163.56, 120.06, 207.83, 342.75, 147.9 , 53.06, 224.72, 29.51, 21.61, 483.21, 245.25, 399.25, 343.35] y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61, 24.9 , 239.34, 140.32, 104.15, 176.84, 288.23, 128.79, 49.64, 191.74, 33.1 , 30.74, 400.02, 205.35, 330.64, 283.45] # 1.创建画布 plt.figure(figsize=(20, 8), dpi=100) # 2.绘制图像 plt.scatter(x, y) # 3.图像显示 plt.show()
-
柱状图(Bar Chart):
- 用于比较不同类别的数据,通常用于显示离散的数据。排列在工作表的列或行中的数据可以绘制到柱状图中
- 特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)
plt.bar()
和plt.barh()
函数用于创建垂直和水平柱状图。
示例:
import matplotlib.pyplot as plt from pylab import mpl # 设置显示中文字体 mpl.rcParams["font.sans-serif"] = ["SimHei"] # 设置正常显示符号 mpl.rcParams["axes.unicode_minus"] = False # 0.准备数据 # 电影名字 movie_name = ['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔传','追捕','七十七天','密战','狂兽','其它'] # 横坐标 x = range(len(movie_name)) # 票房数据 y = [73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222] # 1.创建画布 plt.figure(figsize=(20, 8), dpi=100) # 2.绘制图像 plt.bar(x, y, color=['b','r','g','y','c','m','y','k','c','g','b'], width=0.7) # 2.1 修改x轴显示 plt.xticks(x, movie_name) # 2.2 添加网格 plt.grid(linestyle="--", alpha=0.8) # 2.3 添加标题 plt.title("电影票房收入对比") # 3.图像显示 plt.show()
-
直方图(Histogram):
- 用于显示数据的分布情况,特别是连续变量即由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据范围,用纵轴表示分布情况。
- 特点:绘制连续性的数据展示一组或者多组数据的分布状况(统计)
plt.hist()
函数用于创建直方图。
-
饼图(Pie Chart):
- 用于显示不同部分占整体的比例即用于表示不同分类的占比情况,通过弧度大小来对比各种分类。
- 特点:分类数据的占比情况(占比)
plt.pie()
函数用于创建饼图。
-
箱线图(Box Plot):
- 用于显示数据的统计分布,包括中位数、四分位数等。
plt.boxplot()
函数用于创建箱线图。
-
等高线图(Contour Plot):
- 用于显示二维数据的等高线。
plt.contour()
函数用于创建等高线图。
-
热力图(Heatmap):
- 用于显示矩阵数据的热度分布。
plt.imshow()
函数用于创建热力图。
-
3D 图(3D Plot):
- Matplotlib 支持创建三维散点图、曲面图等。
mpl_toolkits.mplot3d
模块提供了创建 3D 图的工具。
-
极坐标图(Polar Plot):
- 用于显示数据在极坐标系中的分布。
plt.polar()
函数用于创建极坐标图。
这些只是 Matplotlib 支持的一些常见图形种类,实际上,Matplotlib 还提供了许多其他类型的图形和定制选项,可以满足各种不同的可视化需求。你可以根据具体情况选择适合的图形类型,并通过调整参数来定制图表外观。