目录
- 安装库
- 创建图画流程
- 1. 创建画板
- 2. 创建一个个在画板上的图形轴
- 3. 开始在图上进行画画
- 线图plot
- 散点图scatter
- 条形图bar、barh
- 直方图hist
- 饼图pie
安装库
pip install matplotlib
创建图画流程
1. 创建画板
在任何绘图之前,我们需要一个Figure对象,可以理解成我们需要一张画板才能开始绘图。
import matplotlib.pyplot as plt
fig = plt.figure()#创建画板
plt.show()#显示画板
figure常用参数说明:
-
figsize
作用:设置图形的大小(宽度和高度)。
类型:元组 (width, height),单位为英寸。
plt.figure(figsize=(8, 6)) # 宽度为8英寸,高度为6英寸 -
dpi
作用:设置图形的分辨率(每英寸的像素数)。
类型:整数。
默认值:100。
plt.figure(dpi=150) # 设置分辨率为150 -
facecolor
作用:设置图形的背景颜色。
类型:颜色字符串或 RGB 元组。
plt.figure(facecolor="lightgray")
2. 创建一个个在画板上的图形轴
- plt.subplot(2,3,1)
说明:
在创建了画板的基础上,使用subplot这个函数就可以创建图形轴了,类似于一张张画纸。上面的参数为2行3列,一共六个画纸,最后一个1代表着是第一个画质,以此类推
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(12, 6),tight_layout=True)
plt.subplot(2,3,1)
plt.subplot(2,3,2)
plt.subplot(2,3,3)
plt.subplot(2,3,4)
plt.subplot(2,3,5)
plt.subplot(2,3,6)
# plt.tight_layout()
plt.show()
效果如图:
3. 开始在图上进行画画
线图plot
基本使用方式:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, np.pi)
y_sin = np.sin(x)
y_cos = np.cos(x)
fig=plt.figure()plt.subplot(1,2,1)
plt.plot(x, y_sin,color='red',marker='o',linestyle='dashed')
plt.subplot(1,2,2)
plt.plot(x, y_cos,color='red',marker='+',linestyle='dashed')
plt.tight_layout()
plt.show()
主要参数:
- 设置刻度的方法
- xlim
设置 x 轴的显示范围(最小值和最大值)
plt.xlim(left, right) - xticks
设置 x 轴的刻度位置和标签。
- xlim
import matplotlib.pyplot as pltplt.plot([1, 2, 3], [4, 5, 6])
plt.xticks([1, 2, 3], ['A', 'B', 'C'], rotation=45) # 设置刻度位置和标签,并旋转45度
plt.show()
- xlabel
设置 x 轴的标签。
import matplotlib.pyplot as pltplt.plot([1, 2, 3], [4, 5, 6])
plt.xlabel('X Axis', fontsize=12, color='blue') # 设置 x 轴标签
plt.show()
散点图scatter
import numpy as np
import matplotlib.pyplot as plt
x=np.random.randint(0,100,32)
y=np.random.randint(0,100,32)
fig=plt.figure()
plt.subplot(1,2,1)
plt.scatter(x,y,marker="*",color="red",alpha=0.3,label="scatter1")
plt.legend()
plt.subplot(1,2,2)
plt.scatter(x,y,edgecolors="red",color="blue",label="scatter2")
plt.legend()
plt.show()
效果如下:
条形图bar、barh
- bar的使用方法与参数说明:
matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, align='center', **kwargs)x:
类型: 数组或标量
说明: 条形的 x 坐标。可以是单个值或一组值。height:
类型: 数组或标量
说明: 条形的高度。可以是单个值或一组值。width:
类型: 标量,默认值为 0.8
说明: 条形的宽度。bottom:
类型: 数组或标量,默认值为 None
说明: 条形的底部位置。可以用于堆叠条形图。align:
类型: 字符串,默认值为 'center'
说明: 条形的对齐方式。可以是 'center' 或 'edge'。**kwargs:
类型: 关键字参数
说明: 其他可选参数,如颜色、标签等。
如:
color: 条形的颜色。
edgecolor: 条形边缘的颜色。
linewidth: 条形边缘的宽度。
label: 条形的标签,用于图例。
代码演示
import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4]
height = [10, 20, 15, 25]# 绘制条形图
plt.bar(x, height, width=0.6, color='blue', edgecolor='black', label='Bar 1')# 添加标签和标题
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Bar Chart Example')# 显示图例
plt.legend()# 显示图形
plt.show()
- barh的使用方法与参数说明
matplotlib.pyplot.barh(y, width, height=0.8, left=None, align='center', **kwargs)
y:
类型: 数组或标量
说明: 条形的 y 坐标(垂直位置)。可以是单个值或一组值。width:
类型: 数组或标量
说明: 条形的宽度(水平长度)。可以是单个值或一组值。height:
类型: 标量,默认值为 0.8
说明: 条形的高度(垂直厚度)。left:
类型: 数组或标量,默认值为 0
说明: 条形的左侧起始位置。可以用于堆叠条形图。align:
类型: 字符串,默认值为 'center'
说明: 条形的对齐方式。可以是:
'center':条形以 y 坐标为中心。
'edge':条形以 y 坐标为边缘。color:
类型:字符串或颜色列表
说明: 条形的颜色。edgecolor:
类型: 字符串或颜色列表
说明: 条形边缘的颜色。linewidth:
类型: 标量
说明: 条形边缘的宽度。label:
类型: 字符串
说明: 条形的标签,用于图例。
举例
import matplotlib.pyplot as plt# 数据
y = ['A', 'B', 'C', 'D'] # 条形的 y 坐标
width = [10, 20, 15, 25] # 条形的宽度# 绘制水平条形图
plt.barh(y, width, height=0.6, color='skyblue', edgecolor='black', label='Bar 1',alpha=0.3)# 添加标签和标题
plt.xlabel('Width')
plt.ylabel('Y-axis')
plt.title('Horizontal Bar Chart Example')# 显示图例
plt.legend()# 显示图形
plt.show()
效果如下图:
直方图hist
没心情写以后再说吧
饼图pie
参数说明:
def pie(self,x,explode: ArrayLike | None = None,labels: list | None = None,colors: ArrayLike | None = None,autopct: None | str | Callable = None,pctdistance: float = 0.6,shadow: bool = False,labeldistance: float | None = 1.1,startangle: float = 0,radius: float = 1,counterclock: bool = True,wedgeprops: dict | None = None,textprops: dict | None = None,center: tuple[float, float] = (0, 0),frame: bool = False,rotatelabels: bool = False,)
x:
类型: 数组或序列
说明: 输入数据,表示每个扇区的数值大小。explode:
类型: 数组或序列,可选
说明: 指定每个扇区的偏移量(突出显示)。例如,explode=[0.1, 0, 0, 0] 表示第一个扇区突出显示。autopct:
类型: 字符串或函数,可选
说明: 显示每个扇区的百分比。可以是格式化字符串(如 '%1.1f%%'表示保留一位小数,'%1.1f%%'表示保留两位小数)或自定义函数。shadow:
类型: 布尔值,默认值为 False
说明: 如果为 True,饼图将显示阴影。pctdistance: float = 0.6,
说明:数字的位置,越大距离圆心越远labeldistance: float | None = 1.1,
说明:配合labels标签,越大labels标签离圆心越远其他常规参数就不讲了,和前面一样
举例:
import numpy as np
import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) fig1=plt.figure()
plt.subplot(1,2,1)
plt.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=True,colors=['red','green','blue','yellow'],labeldistance=1)plt.subplot(1,2,2)
plt.pie(sizes, autopct='%1.2f%%', shadow=True, startangle=90, explode=explode,pctdistance=1.12)plt.show()