Python中 Matplotlib库的使用(2)

    在1中对pyplot进行了初步的介绍,下面是一些2d图,如折线图、柱形图、饼状图、散点图的绘制教程。内容主要围绕pyplot接口进行。

折线图

    在matplotlib中折线图主要通过matplotlib.pyplot.plot函数实现,其基础的用法主要包括两种:plot(x, y)plot(x)。其中前者主要是绘制数据xy的可视化关系,后者用于直接显示一维数据。下面分别两种方法的示例,生成数据x及其sincos 值,并通过两种方法绘制。
plot(x, y)

# 导入需要的库和函数
import matplotlib.pyplot as plt 
import numpy as np  
# 生成数据x和y
x = np.arange(0,2,0.01)
y1 = np.sin(2*np.pi*x)
y2 = np.cos(2*np.pi*x)
# 绘图
plt.plot(x,y1,c="r",linestyle="-.",linewidth=2,label="sin")
plt.plot(x,y2,c="b",linestyle="-.",linewidth=2,label="cos")
plt.legend()
plt.xlabel("x")
plt.ylabel("y")
plt.show()

在这里插入图片描述
plot(x)

# 导入需要的库和函数
import matplotlib.pyplot as plt
import numpy as np
# 生成数据x和y
x = np.arange(0,2,0.01)
y1 = np.sin(2*np.pi*x)
y2 = np.cos(2*np.pi*x)
# 绘图
plt.plot(y1,c="r",linestyle="-.",linewidth=2,label="sin")
plt.plot(y2,c="b",linestyle="-.",linewidth=2,label="cos")
plt.legend()
plt.xlabel("x")
plt.ylabel("y")
plt.show()

在这里插入图片描述

    可以发现二者基本一致,仅在x轴的范围有所不同,观察两部分的绘图函数可以发现,前者固定了x轴,范围被固定在0-2;后者使用了默认的x轴,因此是0-199。在plot函数中,常用的控制参数有粗细linewidth、颜色color、格式linestyle,标签labelplt.legend()用于显示标签图例;plt.xlabel("x")plt.ylabel("y")用于显示x轴、y轴标签。具体参数对应的样式可见 link

柱形图

    柱形图主要通过matplotlib.pyplot.bar函数实现,绘制方法可分为简单柱形图和簇状柱形图,簇状柱形图是将多个柱形图并列在同一组,方便比较不同类别之间的数据。
简单柱形图

import matplotlib.pyplot as plt
# 数据
categories = ['A', 'B', 'C', 'D']  # 类别
values = [10, 20, 15, 25]  # 值
# 创建柱形图
plt.bar(categories, values,width=0.3,color = 'c')
# 设置标题和标签
plt.title('Simple bax')
plt.xlabel('Category')
plt.ylabel('Value')
# 显示图形
plt.show()

在这里插入图片描述
其中plt.bar(categories, values,width=0.3,color = 'c')中,width是控制柱形图粗细,用于美化。

簇状柱形图

簇状柱形图用于比较多个类别中多个组别之间数据的柱形图。现在还是A-D四个类别的数据,假设我们有三组这样的数据,即Group1Group2Group3。簇状柱形图绘制如下:

import matplotlib.pyplot as plt
import numpy as np
# 数据
categories = ['A', 'B', 'C', 'D']  # 类别
values1 = [10, 20, 15, 25]  # Group1
values2 = [12,18,22,16] # Group2
values3 = [8,17,14,24] # Group3

groups = 3
width = 0.3
x = np.arange(len(categories))

# 创建柱状图
plt.bar(x, values1,width=width,label="Group1")
plt.bar(x+width, values2,width=width,label="Group2")
plt.bar(x+2*width,values3,width=width,label="Group3")

# 设置 x 轴刻度标签
plt.xticks(x+3*width/2-width/2, categories)
# 设置标题和标签
plt.title('Simple bax')
plt.xlabel('Category')
plt.ylabel('Value')
plt.legend()
# 显示图形
plt.show()

在这里插入图片描述
    与简单柱形图不同,为了避免同一类别中的各组柱形重叠,簇状柱形图需要需要为每个组的柱形计算适当的 x 轴位置。这通常通过调整柱形的偏移量来实现。x+2*width可以这样理解,以第1个数据为基础,第2个数据则需要向后偏移1*width,第3个数据则需要向后偏移2*widthplt.xticks(x+3*width/2-width/2, categories)设置x轴的刻度和标签,x+3*width/2-width/2以第一个数据的柱形中心为原始点,因为有三组数据因此需要偏移3*width/2-width/2,3*width/2为3条数据柱形中心,因为x的默认位置是第一个数据数据中心,因此要减去width/2。更多参数和细节见link

饼状图

    饼状图可以表示数据分类和相对大小的可视化图形,其常用于展示数据的分布和比例关系,特别是当需要强调每个部分相对于整体的重要性时。图形绘制主要通过matplotlib.pyplot.pie函数进行。
饼状图

import matplotlib.pyplot as plt
plt.rcParams['font.family']="SimHei" # 中文字体
# 准备数据
labels = ['A', 'B', 'C', 'D','E']
sizes = [15, 30, 45, 20,35]

# 绘制饼状图
plt.pie(sizes, labels=labels,autopct='%1.1f%%',startangle=30)

# 添加图例
plt.legend()

# 添加标题
plt.title('饼状图')

# 显示图表
plt.show()

在这里插入图片描述
    代码中startangle参数用于设置饼图的起始角度;autopct设置每个部分的百分比显示格式。这里并没有对颜色color、explode等参数进行设置,更多详细参数见link

散点图

    散点图用于显示两个变量之间的关系,通常用于寻找变量之间的相关性。Matplotlib库中的plt.scatter 函数可以用来绘制散点图。

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = "SimHei"

# 准备数据
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

# 绘制散点图
plt.scatter(x, y, color='r', marker='*')

# 添加标题和轴标签
plt.title('散点图')
plt.xlabel('X轴')
plt.ylabel('Y轴')

# 显示图表
plt.show()

在这里插入图片描述
    主要参数marker用于设置散点的形状,更多的函数参数可见link
    上述就是一些简单的二维图的绘制教程,可以基础使用,进一步美化深入还需要查阅更详细的资料,具体参考资料如下:
[1] https://matplotlib.org/stable/api/index.html
[2] https://datawhalechina.github.io/fantastic-matplotlib/index.html
[3] https://www.matplotlib.org.cn/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值