Matplotlib

devtools/2025/3/14 17:20:26/

Matplotlib

使用前需要先导入模块

import matplotlib.pyplot as plt
import numpy as np

绘制x点和y点

plot()函数用于在图表中绘制点(标记)
默认情况下,会从点到点之间绘制一条直线
参数1是一个包含x轴上点的数组
参数2是一个包含y轴上点的数组

#从(0,0)到(6,250)画一条直线
xpoints = np.array([0,6])
ypoints = np.array([0,250])
plt.plot(xpoints,ypoints)
plt.show()

2 无线绘图

仅绘图标志,可以使用快捷字符串标识符‘o’

xpoints = np.array([0,6])
ypoints = np.array([0,250])
plt.plot(xpoints,ypoints,'o')
plt.show()

绘制多点

绘制多点需要保证x轴和y轴上点的数量一致

xpoints = np.array([0,6,4,9])
ypoints = np.array([0,6,9,250])
plt.plot(xpoints,ypoints,'o')
plt.show()

默认x轴

如果不指定x轴的点,x轴的坐标会默认从0,1,2开始计算,取决于y轴上点的数量

ypoints = np.array([0,6,9,16])
plt.plot(ypoints)
plt.show()

标记

可以使用关键字参数marker,指定标记强调的点
markersize或者ms设置标记的大小

xpoints = np.array([0,6,9,16])
ypoints = np.array([0,6,9,16])
plt.plot(xpoints,ypoints,marker='o',ms=20)
plt.show()

格式化字符

fmt
marker | line | color

#o标记 :虚线 r红色
plt.plot(xpoints,ypoints,'o:r') 

标记参考

标记描述
‘o’Circle
‘*’Star
‘.’Point
‘,’Pixel
‘x’X
‘X’X (filled)
‘+’Plus
‘P’Plus (filled)
‘s’Square
‘D’Diamond
‘d’Diamond (thin)
‘p’Pentagon
‘H’Hexagon
‘h’Hexagon
‘v’Triangle Down
‘^’Triangle Up
‘<’Triangle Left
‘>’Triangle Right
‘1’Tri Down
‘2’Tri Up
‘3’Tri Left
‘4’Tri Right
‘l’Vline
‘_’Hline

线参考

语法描述
‘-’实线
‘:’虚线
‘–’破折线
‘-.’点划线

颜色参考

语法描述
‘r’Red
‘g’Green
‘b’Blue
‘c’Cyan
‘m’Magenta
‘y’Yellow
‘k’Black
‘w’White

线型

关键字参数:linestyle或ls更改线条样式
linewidth 设置线的宽度

x1 = np.array([0,6,9,16])
y1 = np.array([0,6,9,16])
x2 = np.array([1,2,3,4])
y2 = np.array([0,6,9,8])
plt.plot(x1,y1,x2,y2)
plt.show()

xlabel()和ylabel()分别为x轴和y轴设置标签
title()为图设置标题
以上方法中的fontdict参数可以设置标签和标题字体属性
grid()显示网格线 axis指定x轴或y轴 合法取值:both x y
loc定位标题 默认为center 合法取值:left right center

#设置字体
matplotlib.rcParams['font.sans-serif']=['KaiTi']
font1={'family':'serif','color':'blue','size':20}
font2={'family':'serif','color':'darkred','size':16}
x1 = np.array([0,6,9,16])
y1 = np.array([0,6,9,16])
plt.plot(x1,y1)
plt.title("测试",loc='left')
plt.xlabel("x轴",fontdict=font1)
plt.ylabel("y轴",fontdict=font2)
plt.show()

多图

subplot()可以绘制多个图
subplot根据三个参数设置布局
第一第二分别代表几行几列,第三代表当前图索引
超级标题suptitle()

plt.subplot(2,2,1)
x1 = np.array([0,6,9,16])
y1 = np.array([0,6,9,16])
plt.plot(x1,y1)
plt.subplot(2,2,2)
x1 = np.array([0,6,9,16])
y1 = np.array([0,6,9,16])
plt.plot(x1,y1)
plt.suptitle("hello")
plt.show()

散点图

scatter()
该函数一样需要传入两个相同长度的数组分别代表x和y轴

plt.subplot(2,2,1)
x1 = np.array([0,6,9,16])
y1 = np.array([0,6,9,16])
plt.scatter(x1,y1)
plt.show()

color或c属性设置颜色
s属性更改大小
alpha设置透明度 0-1
颜色图
cmap指定颜色图
colorbar显示

#传入数组可以定义不同颜色和大小
x = np.random.randint(100,size=100)
y = np.random.randint(100,size=100)
colors = np.random.randint(100,size=100)
sizes = np.random.randint(100,size=100)
plt.scatter(x,y,c=colors,alpha=0.6,s=sizes,cmap='viridis')
plt.colorbar()
plt.show()

柱状图

bar()
barh()水平柱状图
属性color width
barh使用height设置高度

x=np.array(['a','b','c','d'])
y=np.random.randint(10,size=4)
plt.bar(x,y)
plt.barh(x,y)
plt.show()

直方图

hist()

x=np.random.normal(60,10,260)
plt.hist(x)
plt.show()

饼图

pie()
label标签 传入的数据只能是数组
startangle 起始角度 默认为0
explode 传入的数据只能是数组 每个数值代表距离圆心的距离
shadow阴影 True 或 False
legend()设置图例 带有参数title
colors 传入的数据只能是数组

y=np.array([10,26,14,60])
label=['apple','potato','clan','flty']
plt.pie(y,labels=label)
plt.legend()
plt.show()

http://www.ppmy.cn/devtools/167071.html

相关文章

HTML5(Web前端开发笔记第一期)

p.s.这是萌新自己自学总结的笔记&#xff0c;如果想学习得更透彻的话还是请去看大佬的讲解 目录 三件套标签标题标签段落标签文本格式化标签图像标签超链接标签锚点链接默认链接地址 音频标签视频标签 HTML基本骨架综合案例->个人简介列表表格表单input标签单选框radio上传…

安装 ubuntu 2404 LTS 服务器 设置 服务器名称

安装 ubuntu服务器 设置 服务器名称 hostname 打开终端&#xff08;Terminal&#xff09;&#xff0c;通过快捷键CtrlAltT或在应用程序中搜索"终端"来打开&#xff1b;在终端中输入以下命令&#xff1a;hostname&#xff0c;然后按下回车键即可查看本机服务器名称。…

探索移动端开发新可能: Android Termux环境下部署MariaDB数据库

文章目录 前言1. 安装MariaDB2. 安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 在这个数字时代&#xff0c;我们的智能手机早已突破了通话、发短信和刷社交媒体的界限。你知道吗&#xff1f;现在的智能机性能强大到足以支持我们进行…

如何利用 PostgreSQL 的 JSONB API 作为扩展的轻量级 JSON 解析器

前言 在基于 C 语言的 PostgreSQL 扩展开发中&#xff0c;您可能会遇到需要处理 JSON 等结构化数据的情况。通常&#xff0c;您可能会在扩展中引入第三方 JSON 解析库&#xff0c;例如 cJSON 或 libjansson。这些库功能强大、易于使用且提供了丰富的特性&#xff0c;但如果我们…

使用OpenCV和MediaPipe库——抽烟检测(姿态监控)

目录 抽烟检测的运用 1. 安全监控 (1) 公共场所禁烟监管 (2) 工业安全 2. 智能城市与执法 (1) 城市违章吸烟检测 (2) 无人值守管理 3. 健康管理与医疗 (1) 吸烟习惯分析 (2) 远程监护 4. AI 监控与商业分析 (1) 保险行业 (2) 商场营销 5. 技术实现 (1) 计算机视…

思维链医疗编程方法论框架(Discuss V1版)

思维链医疗编程方法论框架 1. 方法论核心定义 思维链医疗编程方法论是一种结合结构化思维链(Chain of Thought)与医疗领域需求的系统化编程实践框架,旨在通过分步逻辑推理、知识整合与动态反馈,提升医疗软件/算法的开发效率、准确性与可解释性。该方法论的关键在于通过清晰…

店匠科技携手 PayPal 升级支付体验,助力独立站商家实现全球增长

在全球化电商竞争加剧的背景下,独立站为无数商户插上了通向事业成功的翅膀。然而,搭建店铺框架容易,真正实现有效运营却充满挑战。只有当各个环节如齿轮般严丝合缝,独立站运营才能更好地助推行进,实现稳健增长。如今,独立站商家面临着全链路运营的多重挑战。从品牌塑造、营销推…

鸿蒙app 开发 高效的 存储 数据 推荐使用 @tencent/mmkv(V2.1.0):

参考链接 tencent/mmkv(V2.1.0) 的原理 tencent/mmkv 是基于腾讯 MMKV 原生库适配而来的&#xff0c;在鸿蒙 App 开发中使用时&#xff0c;其核心原理和原生 MMKV 库基本一致&#xff0c;下面从数据存储、读写性能优化、线程安全、数据持久化等方面来详细介绍其原理&#xff1…