【python新手入门】Matplotlib库学习笔记(2)

目录

1 简单图绘制与设置

1.1 模块导入与函数说明

模块导入

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

函数说明

函数说明plt.plot()绘制线性二维图,散点图plt.sactter()绘制散点图plt.bar()条形图plt.pie()饼图plt.hist()直方图plt.boxplot箱型图

1.2 绘图设置

函数描述plt.figure()创建并设置图形窗口plt.xlim(), plt.ylim()图形与边框之间的距离plt.grid()设置(添加)网格线plt.axis()设置坐标轴范围plt.xticks(), plt.yticks()设置坐标轴的刻度标记plt.title()设置标题plt.xlabel(), plt.ylabel()坐标轴标注plt.legend()添加图例plt.text()添加文字注释plt.axhline(), plt.hlines()添加参考线plt.axvline(), plt.vlines()添加参考线plt.axhspan(), plt.axvspan()添加参考区域

1.2.1 plt.figure()设置图形窗口

figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None,…)

  • num:图形窗口序号
  • figsize:图形窗口的大小
  • num:图形窗口的序号
  • figsize: 图形窗口的大小,用元组指定
  • dpi:每英寸的点数
  • facecolor:图形窗口背景色
  • edgecolor:边框色
  • ……

1.2.2 plt.xlim()设置图片边界

设置图形与(坐标轴)边框的距离

1.2.3 plt.axis()设置坐标轴范围

plt.axis()`返回当前坐标轴的范围
plt.axis([xmin, xmax, ymin, ymax]) #用于设置当前坐标轴范围
plt.axis('off')  #不显示坐标轴及坐标轴标签
plt.axis('equal')  #设置不同坐标轴的单位长度相同
plt.axis('tight')  #改变坐标轴的范围,使数据能全部显示,并居中
plt.axis('square')  #设置坐标轴的取值宽度相等,单位长度相同,绘图区域为正方形

1.2.4 plt.grid()设置网格

plt.grid(b=None, which=’major’, axis=’both’, **kwargs)

  • b 取布尔值,用于绘图区域显示或不显示网格
  • 若b为空,且len(kwargs)==0,则plt.grid()用于切换网格的显示状态
  • which可取major或minor,显示稀疏或细密的网格
  • axis可取both,x或y,控制显示哪些网格线
  • kwargs以关键字参数的方式控制网格线的特性,如 ax.grid(color='r', linestyle='-', linewidth=2)

1.2.5 plt.xticks()设置坐标轴刻度标记

1.2.6 文本标注

【python新手入门】Matplotlib库学习笔记(2)
代码如下:
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-2*np.pi,2*np.pi,101)
y=np.sin(x)
plt.plot(x,y)

#显示中文设置
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文字体(SimHei为简体黑体)
plt.rcParams['axes.unicode_minus'] = False  # 设置正常显示负号

#标签、图例、注释等设置
plt.title("sin曲线图")
plt.xlabel('x')
plt.ylabel('y')
plt.legend(['sin(x)轴'])
plt.text(0,0,"y=sin(x)",fontsize=14)
plt.show()

plt.title() 标题

plt.xlabel() 坐标轴标题

plt.legend() 图例

plt.text() 注释

1.2.7 绘制参考线/区域

1.2.8 移动坐标轴

2 多子图绘制

plt.subplot() 创建子图

plt.subplots() 统一设置

【练习】在一个图形窗口中使用不同的方法绘制4个子图,自己定义子图的图形函数。

【求解】:

【python新手入门】Matplotlib库学习笔记(2)
代码如下:
import numpy as np
import matplotlib.pyplot as plt
x,p=plt.subplots(2,2)
p1=p[0,0]
p2=p[0,1]
p3=p[1,0]
p4=p[1,1]
x=np.linspace(0,10,100)
y=x**2
p1.plot(x,x)
p2.plot(x,y)
p3.plot(x,x**3)
p4.plot(x,x**4)
plt.show()

fig.add_subplot()

plt.axes()

plt.axes((left, bottom, width, height))用于添加一个坐标系对象到当前图像窗口中, (left, bottom, width, height)为图形窗口中的相对位置,取值在[0,1]上。

3 统计图形绘制

3.1 散点图plt.scatter()

使用格式: plt.scatter(x, y, s=None, c=None, marker=None, ...)
x, y 是散点的横坐标、纵坐标;
s是标量或数组,表示散点的大小;
c表示颜色;
marker表示点的形状,默认为’o’,还有一些其他的可调参数。
示例

import numpy as np
import matplotlib.pyplot as plt
#建立点集
x=np.random.normal(0,1,1000)
y=np.random.normal(0,1,1000)
t=np.arctan2(x,y)##转化为度数
#绘图
plt.scatter(x,y,c=t)

【python新手入门】Matplotlib库学习笔记(2)

3.2 条形图plt.bar/plt.barh()

使用格式: plt.bar(x, height, width, bottom, ...), plt.barh(x, height, width, bottom, ...)

bar和barh分别绘制竖直条形图和水平条形图。
x为array类型,用于表示条的横坐标;
height为array类型,表示条的高度;
width为0-1之间的实数,表示条的宽度;
bottom表示条的基线高度。

3.3 饼图plt.pie

使用格式: plt.pie(x, explode=None, labels=None, autopct=None, ...)

这里x接收array,表示用于绘制扇形的数据;
explode接收array,表示对应扇形离饼图圆心为n个半径;
labels接收array,指定每一项的名称;
autopct接收特定的string,指定数值的显示方式。

3.4 直方图plt.hist

使用格式: plt.hist(x, bins=None, range=None, density=None, cumulative=False, ...)

plt.hist用于绘制变量x的直方图。
这里x是数组或数组序列;
bins接收整数,序列或字符串,用于指定条的数目;
range接收元组,用于指定各条的上下限,当bins是序列时,range失效;density接收逻辑值True或False,默认为False,当指定为True时,绘制的是概率密度直方图,其条形的总面积为1;
cumulative接收布尔值True或False,默认为False,当指定为True时,绘制累积直方图。

3.5 箱型图plt.boxplot

使用格式: plt.boxplot(x, notch=None, sym=None, vert=None, whis=None, labels=None...)

x接收array,表示用于绘制箱线图的数据;
notch接收布尔值True或False,表示中间箱体是否有缺口,默认为False;
sym接收特定字符串,指定异常点形状,默认为’b+’,如果sym=”,则不显示异常点;
vert接收布尔值,True表示图形为纵向,False为横向,默认为True;
whis接收实数、序列或字符串,用于指定异常值的取值界限whisker,默认为1.5;
labels表示箱线图的标签。

4 三维图图形绘制

4.1 三维曲线图

fig = plt.figure(figsize=(8,6))#创建图形
ax = fig.gca(projection='3d')#创建三维坐标系

再使用ax.plot(x,y,z)直接绘制三维线图

ax.set_box_aspect((np.ptp(x), np.ptp(y), np.ptp(z)))
#三维图中平衡坐标刻度
#二维图中的axis('equal')

【练习】绘制曲线
x = z 2 + 1 sin ⁡ ( 2 π z ) , y = z 2 + 1 cos ⁡ ( 2 π z ) , z ∈ [ − 2 , 2 ] x=\sqrt{z^2+1}\sin(2\pi z), y=\sqrt{z^2+1}\cos(2\pi z), z\in[-2,2]x =z 2 +1 ​sin (2 πz ),y =z 2 +1 ​cos (2 πz ),z ∈[−2 ,2 ]的图形。
【求解】

import numpy as np
import matplotlib.pyplot as plt
#数据点
z=np.linspace(-2,2,100,endpoint=True)
x=np.sqrt((z**2)+1)*np.sin(2*np.pi*z)
y=np.sqrt(x**2+1)*np.cos(2*np.pi*z)
#绘图
p=plt.figure(figsize=(7,7))
ax=p.gca(projection='3d')
ax.plot(z,x,y)
plt.show()

【python新手入门】Matplotlib库学习笔记(2)

4.2 三维曲面图

创建3D类型的坐标系 ax后,用 ax.plot_wireframe(X,Y,Z)绘制网格图或 ax.plot_surface(X,Y,Z)绘制表面图,这里X , Y , Z X,Y,Z X ,Y ,Z是同样大小的二维数组。
设曲面的表达式为Z = F ( X , Y ) Z = F(X,Y)Z =F (X ,Y ),则X , Y X, Y X ,Y可用 numpy.meshgrid()函数产生,Z Z Z由表达式F ( X , Y ) F(X, Y)F (X ,Y )产生。

4.3 等高线图

用Axes3D对象ax的 contour()contourfcontour3D方法可以绘制等高线图。

所有代码均为jupyter python3代码调试
这里辰月渣渣,有错误欢迎纠正

Original: https://blog.csdn.net/m0_56066323/article/details/124584863
Author: 啊这渣渣
Title: 【python新手入门】Matplotlib库学习笔记(2)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/766095/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球