matplotlib使用笔记

matplotlib使用笔记(python)

1、画单个图(曲线),设置图像长宽、保存图片、设置图像标题
import matplotlib.pyplot as plt

plt.figure(figsize=(20,8))  #设置图像大小和长宽比例
plt.plot(data,label='ECG signal')  #data是读取好的一维数据,此时X轴自动生成。label是为该信号加上标注
#或者手动生成x轴数据
#x_axis = list(range(0,data.size))
#plt.plot(x_axis,data,label='ECG signal')  #效果等同于plt.plot(data,label='ECG signal')
plt.title('图片标题')

plt.legend() #加上这句才能正确显示label信息
plt.savefig('./ECG_signal.png')  #保存图片
plt.show()


x_axis = [0:data.size]
plt.figure(figsize=(20,8))
plt.plot(x_axis,data,label='ECG signal')
plt.legend()
plt.show()

效果:
在这里插入图片描述

2、matplotlib不能正确显示中文的解决办法
matplotlib.rc("font", family='Microsoft YaHei')   #运行该行代码
3、在单个图中绘制多条信息,不同颜色标注
x_axis=list(range(0,data.size))
plt.figure(figsize=(20,8))
plt.plot(x_axis,data,label='ECG signal_1',color='b')
plt.plot(x_axis,data_1,label='ECG signal_2',color='r')
plt.title('图片标题')
plt.legend()
plt.show()
#基本颜色
#r——red;b——blue;c——cyan;g——green;k——black;w——white;y——yellow;m——magenta

效果图:
在这里插入图片描述
如果对线条颜色没有强制要求,可以只对其中一个信号标注颜色,其他会自动生成不同的颜色:

例如:
plt.plot(data1, 'b', label = 'original ECG signal')
plt.plot(data2, label='random flip up and down')
plt.plot(data3, label='gaussian noise')
plt.plot(data4, label='random varying amplitude')
plt.plot(data5, label='baseline drift')
plt.show()

在这里插入图片描述
PS:不显示label解决方案:在plt.show()前添加代码:

plt.legend()
4、描点、设置曲线类型
import numpy as np
import matplotlib.pyplot as plt
 
# 作y=sin(x)函数
x_axis = np.linspace(0, 2 * np.pi, 20)
y_axis = np.sin(x_axis)
plt.figure(figsize=(10,5))
plt.plot(x_axis, y_axis,marker='.',color='b')# 描点
plt.plot(x_axis, y_axis,color='yellow') #画线

效果图:
在这里插入图片描述

5、plt.plot(color=‘’)、plt.plot(linestyle=‘’)、plt.plot(marker=‘’)

参考:
https://blog.csdn.net/yldmkx/article/details/123210710

6、设置X轴、Y轴长度和标签
plt.xlim((0.0,2.0))  #设置长度
plt.ylim((0.0,2.0))
plt.xlabel('X轴')  #设置标签
plt.ylabel('Y轴')

效果如下图X轴、Y轴
在这里插入图片描述

7、在一张图中画多张图
import matplotlib
matplotlib.rc("font", family='Microsoft YaHei')

fig, ax = plt.subplots(2, 2, figsize=(20,15), tight_layout=True)
#这里的  2,2 表示在大图中生成分布为2行2列的4张图
#figsize是设置大图的长宽比例,数值越大像素越高
ax = ax.ravel()
ax[0].set_title('(a)窦性心律')  #给小图设置标题
ax[0].plot(data1)   #data1为第一个小图的信号
ax[1].set_title('(b)室上性早搏')
ax[1].plot(data1)
ax[2].set_title('(c)室性早搏')
ax[2].plot(data1)
ax[3].set_title('(d)其他类型')
ax[3].plot(data1)
plt.show()

效果如下:
在这里插入图片描述

8、plt画图时,设置为不显示坐标轴
#添加以下代码
plt.axis('off')

设置前后效果:
在这里插入图片描述
在这里插入图片描述

9、绘制等高线:plt.contourf或plt.contour
  • plt.conrour:绘制轮廓线;
  • plt.contourf:绘制轮廓线并填充;
10,获取图像的刻度值
  • ax.get_yticks()
11、给图像加上渐变条colorbar
  • plt.colorbar()
12、matplotlib生成svg格式图片(直接给文件名后缀设置为.svg)
  • plt.savefig(‘filename.svg’)
13、将字体改为Times New Roman
  • 方法一,设置坐标轴字体
# plt.xticks(fontproperties='Times New Roman')
# plt.yticks(fontproperties='Times New Roman')
  • 方法二,设置全局字体配置。(不能正常显示中文)
plt.rc('font',family='Times New Roman')
  • 我自己尝试了第一种方法,不成功。(好像是与系统的字体有冲突)
  • 第二种方法可以设置Times New Roman,但是不能正常显示中文字体。如下图。
    在这里插入图片描述
14、Times New Roman字体改为不加粗
del matplotlib.font_manager.weight_dict['roman']
matplotlib.font_manager._rebuild()

15、使用subplot画图时,如何拉来子图之间的距离
  • 使用 plt.subplots() 函数创建的子图默认是紧密排列的。如果你想要拉开子图之间的距离,可以使用 subplots_adjust() 函数来调整子图之间的间距和位置。

**subplots_adjust() **函数可以接受一些参数来控制子图的布局。其中常用的参数包括 left、right、bottom、top、hspace 和 wspace。

参数设置描述
left左边界的位置(0.0 到 1.0 之间的浮点数,默认为 0.125)
right右边界的位置(0.0 到 1.0 之间的浮点数,默认为 0.9)
bottom底部边界的位置(0.0 到 1.0 之间的浮点数,默认为 0.1
top顶部边界的位置(0.0 到 1.0 之间的浮点数,默认为 0.9)
hspace子图之间的高度间距(以子图高度的比例表示,默认为 0.2)
wspace子图之间的宽度间距(以子图宽度的比例表示,默认为 0.2)
import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2)
fig.subplots_adjust(hspace=0.5, wspace=0.5)  # 拉开子图之间的间距

axs[0, 0].plot([1, 2, 3], [1, 2, 3])
axs[0, 0].set_title('Plot 1')

axs[0, 1].plot([1, 2, 3], [3, 2, 1])
axs[0, 1].set_title('Plot 2')

axs[1, 0].plot([1, 2, 3], [2, 3, 1])
axs[1, 0].set_title('Plot 3')

axs[1, 1].plot([1, 2, 3], [1, 3, 2])
axs[1, 1].set_title('Plot 4')

plt.show()

效果如图
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值