python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python matplotlib绘制图表

Python中使用matplotlib绘制各类图表示例详解

作者:东方雨倾

这篇文章主要给大家介绍了关于Python中使用matplotlib绘制各类图表的相关资料,matplotlib是python的一个库,内部储存了大量的函数用于绘制图像,通常会与pandas和numpy库一起使用,平常我们通常只是用里面的pyplot模块,需要的朋友可以参考下

折线图

折线图是一种用于表示数据随时间、变量或其他连续性变化的趋势的图表。通过在横轴上放置时间或如此类似的连续变量,可以在纵轴上放置数据点的值,从而捕捉到数据随时间发生的变化。折线图可以用于比较不同变量的趋势,轻松地发现不同的变量之间的差异。

import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建一个绘图窗口,大小为8x6英寸
plt.figure(figsize=(8, 6))
# 绘制折线图
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
# 添加图例,显示在右上角
plt.legend(loc='upper right')
# 添加标题和轴标签
plt.title('Sin and Cos functions')
plt.xlabel('x')
plt.ylabel('y')
# 显示网格线
plt.grid(True)
# 保存图像,支持多种格式,如PNG、PDF、SVG等
plt.savefig('line_plot.png', dpi=300)
# 显示图像
plt.show()

示例结果:

参数说明:

柱状图

柱状图是一种用于比较不同组数据之间差异的图表。它通过将每个数据组的值表示为柱形的高度来显示差异。柱状图可用于比较不同分类数据的数量、频率或比率,用于显示该类别数据的相对大小。

import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = ['A', 'B', 'C', 'D', 'E']
y1 = [3, 7, 2, 5, 9]
y2 = [5, 2, 6, 3, 1]
# 创建一个绘图窗口,大小为8x6英寸
plt.figure(figsize=(8, 6))
# 绘制柱状图
plt.bar(x, y1, color='lightblue', label='Group 1')
plt.bar(x, y2, color='pink', bottom=y1, label='Group 2')
# 添加图例,显示在右上角
plt.legend(loc='upper right')
# 添加标题和轴标签
plt.title('Bar Plot')
plt.xlabel('Category')
plt.ylabel('Value')
# 显示图像
plt.show()

示例结果:

柱状图

参数说明:

直方图

直方图用于展示数据的分布情况,通常用于分析数据集的偏态和峰态等特征。

import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(42)
data = np.random.normal(size=1000)
# 绘制直方图
fig, ax = plt.subplots()
ax.hist(data, bins=30, density=True, alpha=0.5, color='blue')
# 设置图表标题和坐标轴标签
ax.set_title('Histogram of Random Data', fontsize=16)
ax.set_xlabel('Value', fontsize=14)
ax.set_ylabel('Frequency', fontsize=14)
# 设置坐标轴刻度标签大小
ax.tick_params(axis='both', which='major', labelsize=12)
# 显示图表
plt.show()

示例结果:

参数说明:

饼图

饼图用于展示数据的占比情况,通常用于比较不同类别或部分之间的占比情况。

import matplotlib.pyplot as plt
# 生成数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['red', 'green', 'blue', 'yellow']
# 绘制饼图
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)
# 设置图表标题
ax.set_title('Pie Chart of Data', fontsize=16)
# 显示图表
plt.show()

示例结果:

参数说明:

括线图

括线图是一种用于比较不同组数据分布情况的图表。它用于显示数据的中位数、上下四分位数、最小值和最大值,可以帮助我们了解数据分布的形状、位置和离散程度。在括线图中,每个箱子代表数据的25%~75%分位数,中位线是每个箱子中的中位数,普通线是每个箱子之外的最小值和最大值。

import matplotlib.pyplot as plt
# 生成数据
data = [[3.4, 4.1, 3.8, 2.0], [2.3, 4.5, 1.2, 4.3]]
# 创建一个绘图窗口,大小为8x6英寸
plt.figure(figsize=(8, 6))
# 绘制括线图
bp = plt.boxplot(data, widths=0.5, patch_artist=True, notch=True)
# 设置每个箱线图的颜色和填充
for patch, color in zip(bp['boxes'], ['lightblue', 'pink']):
    patch.set_facecolor(color)
# 添加标题和轴标签
plt.title('Box Plot')
plt.xlabel('Group')
plt.ylabel('Data')
# 显示图像
plt.show()

示例结果:

参数说明:

散点图

散点图是一种用于展示两个变量之间关系的图表。每个点代表一个数据点,它的位置由变量的值确定。散点图可用于寻找变量之间的相关性,并显示数据中的任何异常值或离群值。

import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.random.normal(size=100)
y = np.random.normal(size=100)
# 创建一个绘图窗口,大小为8x6英寸
plt.figure(figsize=(8, 6))
# 绘制散点图
plt.scatter(x, y, s=50, alpha=0.5)
# 添加标题和轴标签
plt.title('Scatter Plot')
plt.xlabel('x')
plt.ylabel('y')
# 显示图像
plt.show()

示例结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GM4O5nQt-1686898200230)(null)]

参数说明:

箱线图

箱线图用于展示数据的分布情况和异常值等信息,通常用于比较不同数据集之间的差异。

import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(42)
data = np.random.normal(size=(100, 4), loc=0, scale=1.5)
# 绘制箱线图
fig, ax = plt.subplots()
ax.boxplot(data, notch=True, sym='o', vert=True, whis=1.5)
# 设置图表标题和坐标轴标签
ax.set_title('Boxplot of Random Data', fontsize=16)
ax.set_xlabel('Variable', fontsize=14)
ax.set_ylabel('Value', fontsize=14)
# 设置坐标轴刻度标签大小
ax.tick_params(axis='both', which='major', labelsize=12)
# 显示图表
plt.show()

示例结果:

参数说明:

热力图

热力图用于展示数据之间的关系和趋势,通常用于分析二维数据的相关性和变化。

import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
np.random.seed(42)
data = np.random.normal(size=(10, 10), loc=0, scale=1)
# 绘制热力图
fig, ax = plt.subplots()
im = ax.imshow(data, cmap='YlOrRd')
# 添加颜色条
cbar = ax.figure.colorbar(im, ax=ax)
cbar.ax.set_ylabel('Values', rotation=-90, va='bottom')
# 添加轴标签和标题
ax.set_xticks(np.arange(len(data)))
ax.set_yticks(np.arange(len(data)))
ax.set_xticklabels(np.arange(1, len(data)+1))
ax.set_yticklabels(np.arange(1, len(data)+1))
ax.set_title('Heatmap of Random Data', fontsize=16)
# 显示图表
plt.show()

示例结果:

参数说明:

树状图

树状图用于展示数据之间的层次结构和关系,通常用于分析树形结构和组织架构等问题。

import matplotlib.pyplot as plt
# 绘制树状图
fig, ax = plt.subplots()
ax.barh('CEO', 1, color='black')
ax.barh('VP1', 0.8, left=1, color='gray')
ax.barh('VP2', 0.8, left=1, color='gray')
ax.barh('Manager1', 0.6, left=1.8, color='gray')
ax.barh('Manager2', 0.6, left=1.8, color='gray')
ax.barh('Manager3', 0.6, left=1.8, color='gray')
ax.barh('Supervisor1', 0.4, left=2.4, color='gray')
ax.barh('Supervisor2', 0.4, left=2.4, color='gray')
ax.barh('Supervisor3', 0.4, left=2.4, color='gray')
ax.barh('Staff1', 0.2, left=3.2, color='gray')
ax.barh('Staff2', 0.2, left=3.2, color='gray')
ax.barh('Staff3', 0.2, left=3.2, color='gray')
ax.barh('Staff4', 0.2, left=3.2, color='gray')
# 设置轴标签和标题
ax.set_yticks([])
ax.set_xlim(0, 4)
ax.set_xlabel('Hierarchy', fontsize=14)
ax.set_title('Tree Diagram of Organization', fontsize=16)
# 显示图表
plt.show()

示例结果:

总结

到此这篇关于Python中使用matplotlib绘制各类图表的文章就介绍到这了,更多相关Python matplotlib绘制图表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文