Matplotlib 安装

  • Anaconda 中自带 matplotlib 库,无需另行安装
  • Python标准版本,需要手动安装 matplotlib:
    • 查看当前版本:print(matplotlib.version)
    • 安装最新的稳定版本:pip install matplotlib
    • 安装指定版本:pip install matplotlib==版本号
    • 离线安装包: https://pypi.tuna.tsinghua.edu.cn/simple/matplotlib

Matplotlib 简介

  • Matplotlib 是 Python 常用的第三方 2D 绘图库,是 Python 中最受欢迎的数据可视化软件
    包之一。

plt.plot() 绘图

plt.plot(x, y, color, linestyle, linewidth, marker, markerfacecolor, markersize, label)

  • x: x轴数据
  • y: y轴数据
  • color: 线的颜色
  • linestyle: 线条样式
  • linewidth: 线条宽度(用数字表示大小)
  • marker: 标记的样式
  • markerfacecolor: 标记填充颜色
  • markersize: 标记尺寸(用数字表示大小)
  • label: 线条的标签(后文结合 legend() 创建图例来讲)

以上就是plot()函数常用的参数,下面的表格是对应参数可供选择的值

颜色参数

颜色十六进制颜色颜色十六进制颜色颜色十六进制颜色
‘aliceblue’‘#F0F8FF’‘antiquewhite’‘#FAEBD7’‘aqua’‘#00FFFF’
‘aquamarine’‘#7FFFD4’‘azure’‘#F0FFFF’‘beige’‘#F5F5DC’
‘bisque’‘#FFE4C4’‘black’‘#000000’‘blanchedalmond’‘#FFEBCD’
‘blue’‘#0000FF’‘blueviolet’‘#8A2BE2’‘brown’‘#A52A2A’
‘burlywood’‘#DEB887’‘cadetblue’‘#5F9EA0’‘chartreuse’‘#7FFF00’
‘chocolate’‘#D2691E’‘coral’‘#FF7F50’‘cornflowerblue’‘#6495ED’
‘cornsilk’‘#FFF8DC’‘crimson’‘#DC143C’‘cyan’‘#00FFFF’
‘darkblue’‘#00008B’‘darkcyan’‘#008B8B’‘darkgoldenrod’‘#B8860B’
‘darkgray’‘#A9A9A9’‘darkgreen’‘#006400’‘darkkhaki’‘#BDB76B’
‘darkmagenta’‘#8B008B’‘darkolivegreen’‘#556B2F’‘darkorange’‘#FF8C00’
‘darkorchid’‘#9932CC’‘darkred’‘#8B0000’‘darksalmon’‘#E9967A’
‘darkseagreen’‘#8FBC8F’‘darkslateblue’‘#483D8B’‘darkslategray’‘#2F4F4F’
‘darkturquoise’‘#00CED1’‘darkviolet’‘#9400D3’‘deeppink’‘#FF1493’
‘deepskyblue’‘#00BFFF’‘dimgray’‘#696969’‘dodgerblue’‘#1E90FF’
‘firebrick’‘#B22222’‘floralwhite’‘#FFFAF0’‘forestgreen’‘#228B22’
‘fuchsia’‘#FF00FF’‘gainsboro’‘#DCDCDC’‘ghostwhite’‘#F8F8FF’
‘gold’‘#FFD700’‘goldenrod’‘#DAA520’‘gray’‘#808080’
‘green’‘#008000’‘greenyellow’‘#ADFF2F’‘honeydew’‘#F0FFF0’
‘hotpink’‘#FF69B4’‘indianred’‘#CD5C5C’‘indigo’‘#4B0082’
‘mediumaquamarine’‘#66CDAA’‘mediumblue’‘#0000CD’‘mediumorchid’‘#BA55D3’
‘mediumpurple’‘#9370DB’‘mediumseagreen’‘#3CB371’‘mediumslateblue’‘#7B68EE’
‘mediumspringgreen’‘#00FA9A’‘mediumturquoise’‘#48D1CC’‘mediumvioletred’‘#C71585’
‘midnightblue’‘#191970’‘mintcream’‘#F5FFFA’‘mistyrose’‘#FFE4E1’
‘moccasin’‘#FFE4B5’‘navajowhite’‘#FFDEAD’‘navy’‘#000080’
‘oldlace’‘#FDF5E6’‘olive’‘#808000’‘olivedrab’‘#6B8E23’
‘orange’‘#FFA500’‘orangered’‘#FF4500’‘orchid’‘#DA70D6’
‘palegoldenrod’‘#EEE8AA’‘palegreen’‘#98FB98’‘paleturquoise’‘#AFEEEE’
‘palevioletred’‘#DB7093’‘papayawhip’‘#FFEFD5’‘peachpuff’‘#FFDAB9’
‘peru’‘#CD853F’‘pink’‘#FFC0CB’‘plum’‘#DDA0DD’
‘powderblue’‘#B0E0E6’‘purple’‘#800080’‘red’‘#FF0000’
‘rosybrown’‘#BC8F8F’‘royalblue’‘#4169E1’‘saddlebrown’‘#8B4513’
‘salmon’‘#FA8072’‘sandybrown’‘#FAA460’‘seagreen’‘#2E8B57’
‘seashell’‘#FFF5EE’‘sienna’‘#A0522D’’silver’‘#C0C0C0’
‘skyblue’‘#87CEEB’‘slateblue’‘#6A5ACD’‘slategray’‘#708090’
‘snow’‘#FFFAFA’‘springgreen’‘#00FF7F’‘steelblue’‘#4682B4’
‘tan’‘#D2B48C’‘teal’‘#008080’‘thistle’‘#D8BFD8’
‘tomato’‘#FF6347’‘turquoise’‘#40E0D0’‘violet’‘#EE82EE’
‘wheat’‘#F5DEB3’‘white’‘#FFFFFF’‘whitesmoke’‘#F5F5F5’
‘yellow’‘#FFFF00’‘yellowgreen’‘#9ACD32’
‘ivory’‘#FFFFF0’‘khaki’‘#F0E68C’‘lavender’‘#E6E6FA’
‘lavenderblush’‘#FFF0F5’‘lawngreen’‘#7CFC00’‘lemonchiffon’‘#FFFACD’
‘lightblue’‘#ADD8E6’‘lightcoral’‘#F08080’‘lightcyan’‘#E0FFFF’
‘lightgoldenrodyellow’‘#FAFAD2’‘lightgreen’‘#90EE90’‘lightgray’‘#D3D3D3’
‘lightpink’‘#FFB6C1’‘lightsalmon’‘#FFA07A’‘lightseagreen’‘#20B2AA’
‘lightskyblue’‘#87CEFA’‘lightslategray’‘#778899’‘lightsteelblue’‘#B0C4DE’
‘lightyellow’‘#FFFFE0’‘lime’‘#00FF00’‘limegreen’‘#32CD32’
‘linen’‘#FAF0E6’‘magenta’‘#FF00FF’‘maroon’‘#800000’

linestyle 线条样式参数

样式一样式二说明
‘-’‘solid’实线
‘–’‘dashed’虚线
‘-.’‘dashdot’点画线
‘:’‘dotted’点线
’ ’‘None’不显示线条了

marker 标记样式

样式说明样式说明
‘,’像素标记(极小点)‘2’上花三角标记
‘o’实心圆标记‘3’左花三角标记
‘v’倒三角标记‘4’右花三角标记
‘^’上三角标记‘s’实心方形标记
‘>’右三角标记‘p’实心五角标记
‘<’左三角标记‘*’星形标记
‘h’竖六边形标记‘d’瘦菱形标记
‘H’横六边形标记‘D’菱形标记
‘+’十字标记‘|’垂直线标记
‘x’vx标记‘_’水平线标记
‘.’点标记‘1’下花三角标记
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y = np.sin(x)
plt.plot(x, y, color='skyblue', linestyle='-.', linewidth=2,marker='h', markerfacecolor='gold', markersize=8)
plt.show()

在这里插入图片描述

plt.figure() 创建画布

  • 想要绘图,必须先要创建一个 figure(画布),还要有 axes(坐标系)

隐式创建 figure

  • 当第一次执行 plt.xxx() 画图代码时,会自动判断是否已经存在画布
  • 如果没有,则自动创建一个画布,并且在该画布上自动创建一个坐标系
  • 如果不设置画布,一个画布上只有一个坐标系
import matplotlib.pyplot as plt
import numpy as np


x = np.linspace(-3, 3, 50)
y1 = 2*x + 2
y2 = x**2
y3 = np.sin(x)

plt.plot(x, y1, color='gold')
plt.plot(x, y2, color='red')
plt.plot(x, y3, color='green')
plt.show()

在这里插入图片描述

显式创建 figure

利用 plt.figure() 手动创建画布,可以创建多个画布
在 plt.figure() 下面的 plt.xxx() 画图代码都会画在对应的画布上面

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 50)
y1 = 2*x + 2
y2 = x**2
y3 = np.sin(x)

plt.figure() # 下面两个画图操作都属于这个画布
plt.plot(x, y1, color='gold')
plt.plot(x, y2, color='red')

plt.figure() # 下面一个画图操作属于这个画布
plt.plot(x, y3, color='green')
plt.show()

在这里插入图片描述

plt.figure(num=None, figsize=None, dpi=None, facecolor=None)

  • num: 画布编号或名称(数字为编号,字符串为名称),不指定则按照数字顺序
  • figsize: 指定 figure 的宽和高(英寸),默认为(6.4, 4.8)
  • dpi: 指定画布显示的分辨率(用数字表示大小,默认为100)
  • facecolor: 背景的颜色
import matplotlib.pyplot as plt
import numpy as np


x = np.linspace(-3, 3, 50)
y = np.sin(x)

plt.figure(num=3, figsize=(7, 3), dpi=72, facecolor="red")
plt.plot(x, y)

plt.figure(num="画布二", figsize=(7, 3), dpi=72, facecolor="green")
plt.plot(x, y)
plt.show()

在这里插入图片描述

中文/负号显示问题

  • matplotlib 在使用过程中,可能会遇到中文或者负号显示乱码的问题,把下面代码粘贴到matplotlib 使用的最前面即可
import matplotlib.pyplot as plt


# 通过rc参数修改字体为黑体,就可以显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
# 通过rc参数修改字符显示,就可以正常显示负号
plt.rcParams['axes.unicode_minus'] = False

设置坐标轴

设置坐标轴标签

  • 可以用 plt.xlabel() 和 plt.ylabel() 来指定图像横纵坐标轴的标签
import matplotlib.pyplot as plt
import numpy as np

# 规避中文或者负号可能显示乱码的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(-3, 3, 50)
y = np.sin(x)

plt.figure()
plt.plot(x, y)
plt.xlim((-2, 4))
plt.ylim((-0.5, 0.8))

# 指定横轴标签
plt.xlabel("我是横轴标签")
# 指定纵轴标签,并设置字体大小为14
plt.ylabel("我是纵轴标签", fontsize=14)
plt.show()

在这里插入图片描述

设置坐标轴刻度

plt.xticks(ticks=None, labels=None) / plt.yticks(ticks=None, labels=None)

  • ticks: 刻度点的位置组成的列表(可以指定为空列表,则去掉刻度,但轴还在)
  • labels: 刻度点的位置上的标签组成的列表(labels不指定,则标签显示ticks值)
  • 当不指定参数时,返回对应轴当前刻度点的位置和标签
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-3, 3, 50)
y = np.sin(x)
plt.figure()
plt.plot(x, y)
plt.xlim(-2, 4)
plt.ylim((-0.4, 0.8))
plt.xlabel("我是横轴标签", fontsize=14)
plt.ylabel("我是纵轴标签", fontsize=14)

# 当不指定参数时,返回对应轴当前刻度点的位置和标签
print(plt.xticks())
print(plt.yticks())
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y = np.sin(x)
plt.figure() # 画布1
plt.plot(x, y)

# ticks的值作为刻度点的位置, labels的值作为刻度点的位置上的标签
plt.yticks(ticks=[-1, -0.8, -0.5, -0.1, 1], labels=["a", "b", "c",
"d", "e"])
plt.figure() # 画布2
plt.plot(x, y)

# ticks指定为空列表, 去掉刻度, 但轴还在
plt.xticks(ticks=[])
plt.figure() # 画布3
plt.plot(x, y)
plt.axis("off") # 把轴去掉,刻度一起没了
plt.figure() # 画布4
plt.plot(x, y)
new_xticks = np.linspace(-4, 4, 9)

# 因为没有指定labels参数,所以ticks的值既作为刻度点的位置又作为刻度的标签
plt.xticks(ticks=new_xticks)
plt.yticks(ticks=[-1, -0.8, -0.5, -0.1, 1])
plt.show()

在这里插入图片描述

设置坐标边框颜色

  1. 用 plt.gca() 获取到坐标体系(矩形坐标框)
  2. 调用坐标体系的 spines 属性,通过 ‘top’、‘bottom’、‘left’、‘right’ 参数获得指定的
    边框
  3. 结合 set_color() 方法来指定颜色(当颜色指定为 ‘None’ 时,表示不显示该边框)
import matplotlib.pyplot as plt
import numpy as np


x = np.linspace(-3, 3, 50)
y = np.sin(x)

plt.figure()
plt.plot(x, y)
plt.yticks(ticks=[-1, -0.8, -0.5, -0.1, 1], labels=["a", "b", "c","d", "e"])

ax = plt.gca()
ax.spines['right'].set_color('None')
ax.spines['top'].set_color('None')
ax.spines['left'].set_color('red')
ax.spines['bottom'].set_color('green')
plt.show()

在这里插入图片描述

指定边框为坐标轴

  1. 用 plt.gca() 获取到坐标体系(矩形坐标框)
  2. 坐标体系指定轴来调用 set_ticks_position() 方法,通过
    ‘top’、‘bottom’、‘left’、‘right’ 参数指定边框为坐标轴
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y = np.sin(x)
plt.figure()
plt.plot(x, y)
plt.yticks(ticks=[-1, -0.8, -0.5, -0.1, 1], labels=['a', 'b', 'c','d', 'e'])
ax = plt.gca()
ax.spines['right'].set_color('skyblue')
ax.spines['top'].set_color('blue')
ax.spines['left'].set_color('red')
ax.spines['bottom'].set_color('green')
# 把坐标体系的上边框作为x轴
ax.xaxis.set_ticks_position('top')
# 把坐标体系的右边框作为y轴
ax.yaxis.set_ticks_position('right')
plt.show()

在这里插入图片描述

移动坐标边框

  1. 用 plt.gca() 获取到坐标体系(矩形坐标框)
  2. 调用坐标体系的 spines 属性,通过 ‘top’、‘bottom’、‘left’、‘right’ 参数获得指定的
    边框
  3. 结合 set_position() 方法来指定边框位置
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y = np.sin(x)
plt.figure()
plt.plot(x, y)
plt.yticks(ticks=[-1, -0.8, -0.5, -0.1, 1], labels=['a', 'b', 'c','d', 'e'])
ax = plt.gca()
ax.spines['right'].set_color('None')
ax.spines['top'].set_color('None')
ax.spines['left'].set_color('red')
ax.spines['bottom'].set_color('green')

# 选择坐标体系的左边框, 设置位置到数据为0的地方(即x轴原点)
ax.spines['left'].set_position(('data', 0))

# 选择坐标体系的底边框, 设置位置到数据为-0.1的地方(即y轴的'd'点)
ax.spines['bottom'].set_position(('data', -0.1))
plt.show()

在这里插入图片描述

plt.legend() 创建图例

plt.legend(handles, labels, loc, fontsize, edgecolor, facecolor)

  • handles: 控制柄,默认是一个画布中所有线对象组成的列表
  • labels: 图例标签,默认是绘图函数中 label 参数值组成的列表
  • loc: 图例创建的位置(默认是loc=“best”,代表自动找最好的位置)
  • fontsize: 图例字体大小(用数字大小表示)
  • edgecolor: 图例边框颜色
  • facecolor: 图例背景颜色
import matplotlib.pyplot as plt
import numpy as np


plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = np.sin(x)

plt.figure()
plt.plot(x, y1, color='blue', label='直线')
plt.plot(x, y2, color='green', label='曲线')
plt.legend(loc='lower right', fontsize=14, frameon=True,
edgecolor='red', facecolor='yellow')

plt.figure()
plt.plot(x, y1, color='blue')
plt.plot(x, y2, color='green')
# 指定labels
plt.legend(labels=['直线', '曲线'])

plt.figure()
# plot返回Line2D对象, 装在列表里, 所以解包
line1, = plt.plot(x, y1, color='blue', label='直线')
line2, = plt.plot(x, y2, color='green', label='曲线')
print(line1)
print(line2)
# 指定第一条线创建图例, 且图例标签改为'线条1'
plt.legend(handles=[line1, ], labels=['线条1', ])
plt.show()

在这里插入图片描述

plt.text() 文字说明

plt.text(x, y, s, size, color, ha, va)

  • x:文字开始写的 x 位置
  • y:文字开始写的 y 位置
  • s:需要写的内容
  • size:文字大小
  • color:文字颜色
  • ha:设置垂直对齐方式,可选参数:‘left’, ‘right’, ‘center’ 等
  • va:设置水平对齐方式 ,可选参数: ‘center’ , ‘top’ , ‘bottom’ 等
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y = np.sin(x)
plt.figure()
plt.plot(x, y)
plt.text(x=1.1, y=0.6, s="y=sinx", size=16, color="red")
plt.show()

在这里插入图片描述

plt.scatter() 画散点图

  • x:形状为(n,)的数组,绘图的 x 轴数据
  • y:形状为(n,)的数组,绘图的 y 轴数据
  • s:标记点的大小(用数字大小表示)
  • c:标记点的颜色
  • marker:标记的样式,默认的是 ‘o’
  • alpha:透明度(0-1之间)
  • linewidths:标记点边框线的宽度
  • edgecolors:标记点的边框线颜色
import matplotlib.pyplot as plt
import numpy as np
# 从正态分布中抽取100个随机样本
x1 = np.random.normal(0, 1, 100)
y1 = np.random.normal(0, 1, 100)
x2 = np.random.normal(0, 1, 100)
y2 = np.random.normal(0, 1, 100)

plt.scatter(x1, y1, s=90, c='green', marker='D', alpha=0.2,
linewidths=2, edgecolors='red')
plt.scatter(x2, y2, s=90, c='yellow', marker='D', alpha=0.8,
linewidths=2, edgecolors='black')
plt.xlim((-1.5, 1.5))
plt.ylim((-1.5, 1.5))
plt.show()

在这里插入图片描述

plt.bar() 画条形图

plt.bar(x, height, width, color, edgecolor, alpha, linewidth, bottom, align)

  • x: x 坐标
  • height:条形的高度
  • width:条形的宽度,默认是0.8
  • color:条形的颜色
  • edgecolor:条形边框的颜色
  • alpha:颜色的透明度(0~1)
  • linewidth:条形边框的宽度
  • bottom:条形底边的起始位置(即y轴的起始坐标)
  • align:条形的对齐方式(默认为 “center”,表示刻度和条形中心对齐,“edge” 表示刻度和条形左边对齐)
import matplotlib.pyplot as plt
import numpy as np
x0 = np.arange(12)
# 从均匀分布中抽取12个随机样本
h1 = np.random.uniform(0.5, 1.0, 12)
h2 = np.random.uniform(0.5, 1.0, 12)

plt.figure()
# 用负号来画关于x轴对称的条形图, 底边各上浮0.02的距离使得分开
plt.bar(x0, +h1, color='yellow', edgecolor='blue',bottom=0.02)
plt.bar(x0, -h2, color='green', edgecolor='red',bottom=-0.02)
for i in range(len(x0)):
# y值保留小数点后两位,数字上浮0.03为了好看
plt.text(x0[i], h1[i]+0.03, f"{h1[i]:.2f}", va='bottom',ha='center')
plt.text(x0[i], -h2[i]-0.03, f"{-h2[i]:.2f}", va='top',ha='center')

# 限制坐标轴显示区域, 为了图显示美观
plt.xlim(-1, 12)
plt.ylim(-1.2, 1.2)

# 去掉坐标轴刻度
plt.xticks([])
plt.yticks([])

plt.figure()
# 条形宽度默认是0.8, 要把两个条形放在一起, 那么每个宽度就是0.4, 再互相错位0.2就
可以刚好挨着
plt.bar(x0-0.2, h1, width=0.4, color='blue', alpha=0.4)
# 这里用了align参数, 第一个参数指定为x0+0.2也可以
plt.bar(x0, h2, width=0.4, color='gray', align='edge')
# 限制坐标轴显示区域, 为了图显示美观
plt.xlim(-1, 12)
plt.ylim(0, 1.1)
# 去掉坐标轴刻度
plt.xticks([])
plt.yticks([])
plt.show()

在这里插入图片描述

plt.imshow() 数据转图像

  • 传入图像的像素值数据,就可以绘制出图像,然后通过 plt.show() 来显示图像

plt.imshow(X, cmap, alpha)

  • X: 图像数据(可以是二维的,比如 灰度图;也可以是三维的,比如 RGB 图)
  • cmap: 默认是彩色的,还有其他模式,如:灰度图是 “Greys”
  • alpha: 透明度(0~1)’
import matplotlib.pyplot as plt
import numpy as np


plt.figure()

# 自己造一个shape为(3, 3)的图像数据
data = np.array([[0, 50, 200], [200, 100, 0], [0, 150,200]])
plt.imshow(data)
# plt.imshow(data, cmap="Greys")
# plt.imshow(data, cmap="Greys", alpha=0.3)
plt.show()

在这里插入图片描述

plt.subplot() 创建子图

plt.subplot(nrows, ncols, index)

  • nrows:行数
  • ncols:列数
  • index:指定第几个子图(从1开始)
import matplotlib.pyplot as plt
import numpy as np


x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2
y3 = np.sin(x)
y4 = np.tan(x)
plt.figure()

# 在画布上创建2行2列的子图,并在第1个子图中绘画
plt.subplot(2, 2, 1)
plt.plot(x, y1)

# 在画布上创建2行2列的子图,在第2个子图中绘画
plt.subplot(2, 2, 2)
plt.plot(x, y2)

# 在画布上创建2行2列的子图,在第3个子图中绘画
plt.subplot(2, 2, 3)
plt.plot(x, y3)

# 在画布上创建2行2列的子图,在第4个子图中绘画
plt.subplot(2, 2, 4)
plt.plot(x, y4)
plt.figure()

# 在画布上创建2行1列的子图,并在第1个子图中绘画
plt.subplot(2, 1, 1)
plt.plot(x, y1)

# 在画布上创建2行3列的子图,并在第4个子图中绘画
plt.subplot(2, 3, 4)
plt.plot(x, y2)

# 在画布上创建2行3列的子图,并在第5个子图中绘画
plt.subplot(2, 3, 5)
plt.plot(x, y3)

# 在画布上创建2行3列的子图,并在第6个子图中绘画
plt.subplot(2, 3, 6)
plt.plot(x, y4)

plt.show()

在这里插入图片描述

plt.axes() 画图中图

plt.axes()

  • 可以通过指定相对画布的位置和宽高在一个画布中定制多个坐标轴
import matplotlib.pyplot as plt
import numpy as np


plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2
y3 = np.sin(x)

plt.figure()
"""
对这四个数字的说明:
0.1, 0.1表示坐标框左下角的位置, x和y坐标在画布的10%的位置
0.8, 0.8表示坐标框的宽和高为画布的80%大小 """
plt.axes([0.1, 0.1, 0.8, 0.8])
plt.title('直线') # 标题
plt.plot(x, y1)

plt.axes([0.2, 0.6, 0.25, 0.25])
plt.title('抛物线')
plt.plot(x, y2)

plt.axes([0.6, 0.2, 0.25, 0.25])
plt.plot(x, y3)
plt.title('余弦曲线')
plt.show()

在这里插入图片描述

plt.savefig() 保存图像

通过 plt.savefig() 保存图像到指定的路径

import matplotlib.pyplot as plt
import numpy as np


y2 = []
y1 = np.linspace(-3, 3, 50)

for i in y1**2:
	y2.append(i)
	plt.clf() # 清除数据, 放在这个位置是为了循环的清除上一次的数据
	plt.plot(y2)
	plt.pause(0.1) # 暂停0.1秒
plt.savefig('./img.jpg') # 保存图像到指定的路径
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐