LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【数据操作与可视化】Matplotlib绘图-常用操作

zhenglin
2025年12月3日 8:54 本文热度 190

【数据操作与可视化】Matplotlib绘图-常用操作

1、自定义刻度和风格

import matplotlib.pyplot as plt

import random

from pylab import mpl

# 设置显示中文字体

mpl.rcParams["font.sans-serif"] = ["SimHei"]

# 设置正常显示符号

mpl.rcParams["axes.unicode_minus"] = False

# 0.准备数据

x = range(60)

y_shanghai = [random.uniform(15, 18) for i in x]

# 1.创建画布

plt.figure(figsize=(20, 8), dpi=100)

# 2.绘制图像

plt.plot(x, y_shanghai)

# 2.1 添加x,y轴刻度

# 构造x,y轴刻度标签

x_ticks_label = ["11点{}分".format(i) for i in x]

y_ticks = range(40)

# 刻度显示

plt.xticks(x[::5], x_ticks_label[::5])

plt.yticks(y_ticks[::5])

# 2.2 添加网格显示

plt.grid(True, linestyle="--", alpha=0.5)

# 2.3 添加描述信息

plt.xlabel("时间")

plt.ylabel("温度")

plt.title("中午11点--12点某城市温度变化图", fontsize=20)

# 2.4 图像保存

plt.savefig("./test.png")

# 3.图像显示

plt.show()

 


2、在同一个坐标系中多次绘制

需求:再添加一个城市的温度变化。 收集到北京当天温度变化情况,温度在1度到3度。

怎么去添加另一个在同一坐标系当中的不同图形,其实很简单只需要再次plot即可,但是需要区分线条,如下显示:


# 增加北京的温度数据

y_beijing = [random.uniform(5, 8) for i in x]

# 绘制折线图

plt.plot(x, y_shanghai)

# 使用多次plot可以画多个折线

plt.plot(x, y_beijing, color='r', linestyle='--')

3、图形风格

 


图例的显示位置: plt.legend(loc=”best” 或 loc=0) :

Location StringLocation Code
‘best’0
‘upper right’1
‘upper left’2
‘lower left’3
‘lower right’4
‘right’5
‘center left’6
‘center right’7
‘lower center’8
‘upper center’9
‘center’10

4、绘制子图

一个绘图对象可以包含多个轴,在matplotlib中用轴表示一个绘图区域,可以将其理解为子图。不特别指定,绘图对象只包括一个轴,因此只显示了一个轴(子图Axes)。

可以使用fig对象的add_subplot方法和plt.subplot方法绘制多个轴的图表。


import matplotlib.pyplot as plt

from pylab import mpl

import numpy as np

mpl.rcParams["font.sans-serif"] = ["SimHei"]

mpl.rcParams["axes.unicode_minus"] = False

x = np.linspace(0, 10, 100)   # 0到10之间的所有数据,分成100个组

y = np.sin(x)

z = np.cos(x**2)

# 生成默认的画布,并利用该画布生成两个子图

fig = plt.figure(figsize=(8,4), dpi=100)

fig.add_subplot(2,1,1)     # 三个参数分别代表:2行,1列,第1个子图

# 在第一个子图上进行绘制

plt.title('正弦信号')

plt.xlabel('时间')

plt.ylabel('电压')

plt.xlim(-1, 11)

plt.ylim(-1.2, 1.2)

plt.xticks(np.arange(0, 11, 2))

plt.yticks([-1, -0.5, 0, 0.5, 1])

plt.plot(x, y, label='sin(x)')

plt.legend(loc=0)

plt.subplots_adjust(wspace=0, hspace=0.7)    # 调整子图之间的距离

# 第二个子图

fig.add_subplot(2,1,2)   # 创建第二个子图

plt.title('余弦信号')

plt.xlabel('时间')

plt.ylabel('电压')

plt.xlim(-1, 11)

plt.ylim(-1.2, 1.2)

plt.xticks(np.arange(0, 11, 2))

plt.yticks([-1, -0.5, 0, 0.5, 1])

plt.plot(x, z, 'm--', label='cos(x)')

plt.legend(loc=0)

plt.show()

5、添加说明和注释

添加文字说明主要用到方法text,注释可以使用annotate方法。


import matplotlib.pyplot as plt

from pylab import mpl

import numpy as np

mpl.rcParams["font.sans-serif"] = ["SimHei"]

mpl.rcParams["axes.unicode_minus"] = False

x = np.linspace(0, 10, 100)   # 0到10之间的所有数据,分成100个组

y = np.sin(x)

z = np.cos(x)

# 绘图设置

plt.figure(figsize=(8, 5), dpi=100)  # 宽度和高度(英寸),dpi,每英寸像素值

plt.title('正余弦信号', color='red', fontsize=20, rotation=0, alpha=1)  # 添加标题,rotation角度旋转,alpha透明度

plt.xlabel('时间', fontsize=15, color='k', rotation=0)   ## 设置x和y轴的名称

plt.ylabel('电压', fontsize=15)

plt.xlim(-1, 11)         # 设置x和y轴的范围

plt.ylim(-1.2, 1.2)

plt.xticks(np.arange(0, 12, 2), fontsize=15, rotation=0)      # 设置x和y周的刻度

plt.yticks([-1, -0.5, 0, 0.5, 1])

plt.plot(x, y, color='blue', linewidth=2, label='sin(x)')     # 绘图

plt.plot(x, z, 'r--', label='cos(x)')    # r红色,--表示线型

plt.legend(loc=0)

# 添加文字说明。0,0表示文字的坐标位置

plt.text(0, 0, '零点', fontsize=10, rotation=0, color='r')

# 添加注释。xy指要添加注释的点,xytext是指注释文字的位置,可以自由指定。也可以添加多个注释

plt.annotate('最大值', color='r', xy=(1.87, 1),

             xytext=(2.2, 1.3),

             arrowprops=dict(facecolor='r', edgecolor='b', width=1, headlength=10))

plt.show()


 参考文章:原文链接


该文章在 2025/12/3 8:54:27 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved