绘图库 Matplotlib Search

关于Pathon的绘图库的认识和基本操作的学习 这里学习了两款常用便捷的绘图库去学习使用

Matplotlib

介绍

是最受欢迎的一种数据可视化包 是常用的2D绘图库 一般常于Numpy和Pandas使用 是数据分析中非常重要的工具

可以自定义XY轴 绘制线形图 柱状图 直方图 密度图 散点图 更清晰的展示数据

 基本绘图

plt.plot(x,y,ls,lw,lable,color,marker)

x x 为绘制做坐标点 ls 为线型linestyle lw为线宽linewidth lable为标签文本内容 color为颜色 marker为标记

ls- 实线  : 点虚线  --破折线  -.点划线
colorr 红 g 绿 y 黄 k 黑 w 白
marker. 点  ,像素点 o 实心圆 v 下三角 * 星星

# 绘制直线图
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [2,4,6,8,10]
plt.plot(x,y,color="r",ls="--")
plt.show()

使用

设置网格

import numpy as np # 设置网格
plt.figure(figsize=(6,3),dpi=100)
x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y)
plt.grid() # 设置网格

绘制多线

import numpy as py # 绘制多条线 设置画布背景
plt.figure(figsize=(6,3),dpi=100) # 设置画布的长宽和分辨率
x = np.linspace(0,2*np.pi)
y = np.sin(x)
z = np.cos(x)
plt.plot(x,y)
# plt.show() # 立刻绘图 只绘制xy的图像
plt.plot(x,z)

# 创建数据
x = np.linspace(0,10,100)
y1 = np.sin(x)
y2 = np.cos(x)# 绘制图形
plt.plot(x,y1,label='Sin Function',color="y",ls="-.") # 第一个数据系列
plt.plot(x,y2,label='Cos Function')# 显示图例
plt.legend()# 显示图形
plt.show()

 多图布局

#%%
%matplotlib inline
# 若不显示图片 则加上
import matplotlib.pyplot as plt
plt.rcParams['front.sans-serif'] = ['SimHei'] # 用于正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用于正常显示负号
#%%
# 绘制直线图
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [2,4,6,8,10]
plt.plot(x,y,color="r",ls="--")
plt.show()
#%%
import numpy as np # 设置网格
plt.figure(figsize=(6,3),dpi=100)
x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y)
plt.grid() # 设置网格
#%%
import numpy as py # 绘制多条线 设置画布背景
plt.figure(figsize=(6,3),dpi=100) # 设置画布的长宽和分辨率
x = np.linspace(0,2*np.pi)
y = np.sin(x)
z = np.cos(x)
plt.plot(x,y)
# plt.show() # 立刻绘图
plt.plot(x,z)
#%%
# 多图布局
import matplotlib.pyplot as plt
import numpy as np# 创建数据
x = np.linspace(0,10,100)
y1 = np.sin(x)
y2 = np.cos(x)# 创建一个2*2的子图布局
plt.figure(figsize=(10,6)) # 设置整个图的大小# 第一个子图
plt.subplot(2,2,1) # 第一个子图位于2*2布局的第一个位置
plt.plot(x,y1,'r-') # 绘制曲线
plt.title('Sin Function') # 设置标题# 第二个子图
plt.subplot(2,2,2) # 第二个子图的第二个位置
plt.plot(x,y2,'b-') # 设置cos曲线
plt.title('Cos Function')# 第三个子图
plt.subplot(2,2,3)
plt.plot(x,y1 + y2,'h-')
plt.title('Sin + Cos Function')# 第四个子图
plt.subplot(2,2,4)
plt.plot(x,y1 - y2,'r-')
plt.title('Sin - Cos Function')# 调整子图之间的间距
plt.tight_layout()# 显示图形
plt.show()

图形嵌套

# 图形嵌套
import numpy as np
import matplotlib.pyplot as plt# 创建数据
x = np.linspace(0,10,100)
y = np.sin(x)# 创建外层图形
fig = plt.figure(figsize=(8,6))# 在外层图形中创建嵌套的子图
plt.plot(x,y,'b-')
plt.title('Main Plot')# 创建嵌套的子图
left,bottom, width,height = [0.4,0.5,0.25,0.25]
axes = fig.add_axes([left,bottom,width,height]) # 创建一个新的坐标轴
axes.plot(x,y,'r-',label = 'sin Function (Inset)')
plt.title('Inset Plot')# 显示图例
plt.legend()# 显示图形
plt.show()

调整刻度和标签

import numpy as np
import matplotlib.pyplot as plt# 创建数据
x = np.linspace(0,10,100)
y = np.sin(x)# 绘制图形
plt.plot(x,y,label = 'Sin Function')
plt.title('修改刻度')# 修改X轴和Y轴的刻度
plt.xticks(np.arange(0,11,1)) # 设置刻度和步长
plt.yticks([-1,0,1])# 添加标签
plt.xlabel('x')
plt.ylabel('y')plt.legend()
plt.show()

 保存图片

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0,10,100)
y = np.sin(x)plt.plot(x,y,label = 'Sin Function')# 标签
plt.title('Plot Example')
plt.xticks(np.arange(0,11,1))
plt.yticks([-1,0,1])
plt.legend()plt.savefig('plot_example.png')
plt.show()

绘制折线图

plt.figure(figsize=(10,6))x = df.index # 获取月份作为x轴数据
y1 = df['语文']plt.plot(x,y1,marker='o',color='r',ls='--',label='语文')plt.title('张三成绩月变化情况')
plt.xlabel('月份')
plt.ylabel('分数')
plt.legend()
plt.grid(True) # 网格线plt.xticks(rotation = 45) # x轴刻度标签的角度旋转为45度
plt.tight_layout()
plt.show()

多个柱状图

# 绘制多个柱状图
import numpy as np
import matplotlib.pyplot as plt# 读取 Excel 表格数据
excel_file = '张三成绩.xlsx'
df = pd.read_excel(excel_file)# 绘制图像
plt.figure(figsize=(10,6))months = df.index
x = range(len(months))# 设置柱状图的宽度
bar_width = 0.25plt.bar(x,df['语文'],width=bar_width,align='center',label='语文',color='skyblue')
plt.bar([i + bar_width for i in x],df['英语'],width=bar_width,align='center',label='数学',color='r')
plt.bar([i + 2 * bar_width for i in x],df['英语'],width=bar_width,align='center',color='b')plt.title('成绩月变化情况')
plt.xlabel('月份')
plt.ylabel('分数')# 设置X轴刻度标签
plt.legend()# 显示图形
plt.tight_layout()
plt.show()

绘制散点图

import numpy as np
import matplotlib.pyplot as pltnp.random.seed(0)
height = np.random.normal(loc=170,scale=10, size=100)
weight = 0.6 * height + np.random.normal(loc=0,scale=5,size=100)plt.figure(figsize=(10,6))
plt.scatter(height,weight,color='r',alpha=0.7)plt.title('身高与体重关系散点图')
plt.xlabel('身高')
plt.ylabel('体重')plt.grid(True)
plt.tight_layout()
plt.show()

绘制饼图

import numpy as np
import matplotlib.pyplot as pltexcel_file = '张三成绩.xlsx'
df = pd.read_excel(excel_file)plt.figure(figsize=(10,6))plt.pie(df['语文'],startangle=90) # startangle 绘制的起始位置plt.title('成绩情况')plt.show()


Search

介绍

    在Matplotlib的基础上进行了更高级的封装 使用极简的代码做出具有分析价值且十分美观的图形 而且也支持Pyhon的其他库 

    可以绘制 折线图 散点图(分类图)分类分布图 分类统计图 线性回归图 热力图

风格设置

white

纯白 

whitegrid

带有网格的纯白

dark

灰色

darkgrid

带网格灰色
ticks白色 轴上有刻度条 

函数参数使用

函数类型函数名称主要参数使用场景示例代码
​分布类​displot()
(通用分布图)
kind: 指定类型(hist/kde/ecdf)
data: 数据集
x/y: 变量
hue: 分组变量
rug: 显示分布密度
单变量分布分析
数据分布形状探索
sns.displot(data=tips, x="total_bill", kind="kde", hue="time")
​分布类​histplot()
(直方图)
bins: 箱数
kde: 叠加密度线
stat: 统计方式(count/density)
multiple: 分组叠放方式
数值变量分布探索
统计频次分析
sns.histplot(data=tips, x="tip", bins=20, kde=True, hue="sex")
​关系类​scatterplot()
(散点图)
x/y: 变量坐标
size: 点大小
style: 点形状
alpha: 透明度
palette: 色板
双变量关系探索
相关性可视化
sns.scatterplot(data=iris, x="sepal_length", y="petal_length", hue="species", size="petal_width")
​关系类​lineplot()
(折线图)
sort: 是否排序
markers: 显示标记
ci: 置信区间
style: 线型分组
时间趋势分析
序列变化对比
sns.lineplot(data=flights, x="year", y="passengers", hue="month", ci=None)
​分类类​barplot()
(条形图)
estimator: 聚合函数(mean/sum)
ci: 置信区间
order: 类目顺序
capsize: 误差线帽宽
分类变量聚合比较
均值差异分析
sns.barplot(data=titanic, x="class", y="fare", hue="sex", estimator=np.mean)
​分类类​boxplot()
(箱线图)
orient: 方向(v/h)
notch: 凹口
fliersize: 离群点大小
width: 宽度
数据分布对比
异常值检测
sns.boxplot(data=penguins, x="species", y="body_mass_g", hue="sex", notch=True)
​分类类​violinplot()
(小提琴图)
inner: 内部图(quartiles/stick)
split: 分组合并
bw: 核密度带宽
比较数据分布形状
概率密度可视化
sns.violinplot(data=penguins, x="island", y="bill_length", hue="sex", inner="stick", split=True)
​矩阵类​heatmap()
(热力图)
annot: 显示数值
fmt: 数值格式
cbar: 显示色标
linewidths: 网格线宽
vmin/vmax: 值域范围
相关性分析
交叉表可视化
sns.heatmap(data=corr_matrix, annot=True, fmt=".2f", cmap="coolwarm")
​矩阵类​clustermap()
(聚类热力图)
row_colors: 行标签色
method: 聚类方法
metric: 距离算法
z_score: 标准化
聚类分析
分组可视化
sns.clustermap(data=iris, method="ward", z_score=0, cmap="viridis")
​网格类​FacetGrid()
(分面网格)
col/row: 分面维度
col_wrap: 换行数
height/aspect: 子图尺寸
share{x/y}: 坐标轴共享
多维度分析
数据集子集探索
g = sns.FacetGrid(tips, col="time", row="smoker")<br>g.map(sns.scatterplot, "total_bill", "tip")
​网格类​pairplot()
(变量关系矩阵)
diag_kind: 对角线图类型
plot_kws: 子图参数
corner: 只显示下三角
kind: 关系类型(scatter/kde)
多变量关系探索
数据集快速概览
sns.pairplot(data=iris, hue="species", diag_kind="hist", corner=True)

核心参数

参数描述示例值
data输入数据源DataFrame/tables/arrays
x/y坐标轴变量列名 (如:"total_bill")
hue分组变量分类列名 (如:"sex")
palette调色板"viridis", "mako", "Set2"
size尺寸变量连续变量列名
alpha透明度0-1值 (0.5表示半透明)
legend图例"auto"(默认)/True/False
axmatplotlib轴对象用于在已有图形上绘制

使用

折线图(使用库自带的测试数据集)

import seaborn as sns
test_data = sns.load_dataset('fmri')
print(test_data.head())sns.relplot(x="timepoint",y="signal",kind="line",data=test_data)

折线图(事件区分)

import seaborn as sns
test_data = sns.load_dataset('fmri')
print(test_data.head())sns.relplot(x="timepoint",y="signal",kind="line",hue="event",data=test_data)

分图展示

import seaborn as sns
test_data = sns.load_dataset('fmri')
print(test_data.head())sns.relplot(x="timepoint",y="signal",kind="line",hue="event",col="event",data=test_data)

散点图(分类图)

titanic = sns.load_dataset('titanic')
sns.relplot(x="age",y="fare",data=titanic)

sns.catplot(x="pclass",y="fare",data=titanic) # 用作做分类

箱形图

sns.boxplot(x="pclass",y="fare",data=titanic)

条形图

sns.barplot(x="pclass",y="fare",data=titanic) # 条形图

计数图

sns.countplot(x="pclass",data=titanic)
sns.set_style("whitegrid") # 绘图风格设置

调色板

# 调色板
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用于正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用于正常显示负号
plt.figure(figsize=(10,10))
planets = sns.load_dataset('planets')
sns.barplot(x="year",y="number",data=planets,palette="rainbow")

 线性关系图

sns.regplot(x="age",y="fare",data=titanic)

热力图

# 热力图
flights = sns.load_dataset('flights')# 将长格式转换为宽格式数据,以便于绘制热力图
f = flights.pivot(index="month",columns="year",values="passengers")# 绘制热力图
plt.figure(figsize=(10,10))
sns.heatmap(f,annot=True,fmt='d',cmap='YlGnBu')
plt.title("Flights Passenger Count By Year ans Month")
plt.xlabel("Year")
plt.ylabel("Month")
plt.show()

相关系数矩阵的热力图

plt.figure(figsize=(10,10))
sns.heatmap(f.corr(),annot=True,cmap='coolwarm')


学习时间  2025.07.20

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90581.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90581.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker详解及实战

&#x1f389; Docker 简介和安装 - Docker 快速入门 Docker 简介 Docker是一个开源的平台&#xff0c;用于开发、交付和运行应用程序。它能够在Windows&#xff0c;macOS&#xff0c;Linux计算机上运行&#xff0c;并将某一应用程序及其依赖项打包至一个容器中&#xff0c;这…

嵌入式学习的第三十三天-进程间通信-UDP

一、网络1.定义不同主机间进程通信主机间在硬件层面互联互通主机在软件层面互联互通2.国际网络体系结构OSI模型&#xff08;7层&#xff09;: open system interconnect -------理论模型------定义了网络通信中不同层的协议1977 国际标准化组织各种不同体系结构的计算机能在世…

4、Spring AI_DeepSeek模型_结构化输出

一、前言 Spring AI 提供跨 AI 供应商&#xff08;如 OpenAI、Hugging Face 等&#xff09;的一致性 API, 通过分装的ChatModel或ChatClient即可轻松调动LLM进行流式或非流式对话。 本专栏主要围绕着通过OpenAI兼容接口调用各种大语言模型展开学习&#xff08;因为大部分模型…

Spring Data Redis 从入门到精通:原理与实战指南

一、Redis 基础概念 Redis&#xff08;Remote Dictionary Server&#xff09;是开源的内存键值对数据库&#xff0c;以高性能著称。它支持多种数据结构&#xff08;String、Hash、List、Set、ZSet&#xff09;&#xff0c;并提供持久化机制&#xff08;RDB、AOF&#xff09;。 …

免费版酒店押金原路退回系统——仙盟创梦IDE

项目介绍​东方仙盟开源酒店押金管理系统是一款面向中小型酒店、民宿、客栈的轻量级前台管理工具&#xff0c;专注于简化房态管理、订单处理和押金跟踪流程。作为完全开源的解决方案&#xff0c;它无需依赖任何第三方服务&#xff0c;所有数据存储在本地浏览器中&#xff0c;确…

10. isaacsim4.2教程-RTX Lidar 传感器

1. 前言RTX Lidar 传感器Isaac Sim的RTX或光线追踪Lidar支持通过JSON配置文件设置固态和旋转Lidar配置。每个RTX传感器必须附加到自己的视口或渲染产品&#xff0c;以确保正确模拟。重要提示&#xff1a; 在运行RTX Lidar仿真时&#xff0c;如果你在Isaac Sim UI中停靠窗口&…

QT6 源,七章对话框与多窗体(14)栈式窗体 QStackedWidget:本类里代码很少。举例,以及源代码带注释。

&#xff08;1&#xff09;这不是本章节要用到的窗体组件&#xff0c;只是跟着标签窗体 QTabWidget 一起学了。这也是 QT 的 UI 界面里的最后几个容器了。而且本类也很简单。就了解一下它。 本类的继承关系如下 &#xff1a; UI 设计界面 &#xff1a;运行效果 &#xff1a;&…

魔百和M401H_国科GK6323V100C_安卓9_不分地区免拆卡刷固件包

魔百和M401H_国科GK6323V100C_安卓9_不分地区免拆卡刷固件包刷机说明&#xff1a;1&#xff0c;进机顶盒设置&#xff08;密码10086&#xff09;&#xff0c;在其他里&#xff0c;一直按左键约32下&#xff0c;打开调试模式2&#xff0c;进网络设置&#xff0c;查看IP地址。3&a…

MySQL基础02

一. 函数在 MySQL 中&#xff0c;函数是用于对数据进行特定处理或计算的工具&#xff0c;根据作用范围和返回结果的不同&#xff0c;主要分为单行函数和聚合函数&#xff08;又称分组函数&#xff09;。以下是详细介绍&#xff1a;1.单行函数单行函数对每一行数据单独处理&…

LabVIEW 视觉检测SIM卡槽

针对SIM 卡槽生产中人工检测效率低、漏检误检率高的问题&#xff0c;设计了基于 LabVIEW 机器视觉的缺陷检测系统。该系统通过光学采集与图像处理算法&#xff0c;实现对卡槽引脚折弯、变形、漏铜等缺陷的自动检测&#xff0c;误报率为 0&#xff0c;平均检测时间小于 750ms&am…

RocketMQ5.3.1的安装

1、下载安装 RocketMQ 的安装包分为两种&#xff0c;二进制包和源码包。1 下载 Apache RocketMQ 5.3.1的源码包后上传到linux https://dist.apache.org/repos/dist/release/rocketmq/5.3.1/rocketmq-all-5.3.1-source-release.zip2 解压编译 $ unzip rocketmq-all-5.3.1-source…

FunASR实时多人对话语音识别、分析、端点检测

核心功能&#xff1a;FunASR是一个基础语音识别工具包&#xff0c;提供多种功能&#xff0c;包括语音识别&#xff08;ASR&#xff09;、语音端点检测&#xff08;VAD&#xff09;、标点恢复、语言模型、说话人验证、说话人分离和多人对话语音识别等。FunASR提供了便捷的脚本和…

opencv--day01--opencv基础知识及基础操作

文章目录前言一、opencv基础知识1.opencv相关概念1.1背景1.2特点1.3主要功能与应用1.4.opencv-python2.计算机中的图像概念2.1图像表示2.2图像存储彩色图像二、opencv基础操作1.图像的读取2.图像的显示3.保存图像4.创建黑白图及随机像素彩图5. 图像切片&#xff08;图片剪裁&am…

如何撤销Git提交误操作

要撤销在主分支上的 git add . 和 git commit 操作&#xff0c;可以按照以下步骤安全回退&#xff1a; 完整回退步骤&#xff1a; # 1. 查看提交历史&#xff0c;确认要回退的commit git log --oneline# 示例输出&#xff1a; # d3f4g7h (HEAD -> main) 误操作提交 # a1b2c3…

React+Three.js实现3D场景压力/温度/密度分布可视化

本文介绍了一个基于React和Three.js的3D压力可视化解决方案&#xff0c;该方案能够&#xff1a; 加载并渲染3D压力模型数据 提供动态颜色映射功能&#xff0c;支持多种颜色方案&#xff1a;彩虹-rainbow,冷暖-cooltowarm,黑体-blackbody,灰度-grayscale 实现固定位置的颜色图…

Go 官方 Elasticsearch 客户端 v9 快速上手与进阶实践*

1、为什么选择 go-elasticsearch&#xff1f; 版本同步&#xff1a;与 Elasticsearch 主版本保持一一映射&#xff0c;当前稳定分支为 v9&#xff0c;对应 ES 9.x 系列。(GitHub)完全覆盖 REST API&#xff1a;所有 HTTP 端点都有等价方法&#xff0c;避免手写 JSON/HTTP。可插…

`/etc/samba/smb.conf`笔记250720

/etc/samba/smb.conf笔记250720 /etc/samba/smb.conf 是 Samba 服务的核心配置文件&#xff0c;用于实现 Linux/Unix 与 Windows 系统间的文件和打印机共享。以下详解其结构和常用参数&#xff1a; 配置文件结构 1. 全局设置段 [global] 控制 Samba 服务器的整体行为。 …

Java从入门到精通!第十六天,重点!(多线程和线程池)

一、多线程1&#xff0e;基本概念&#xff08;1&#xff09;程序&#xff08;Program&#xff09;&#xff1a;为了完成特定的任务&#xff0c;用某种计算机语言编写的一组指令的集合&#xff0c;即指一段静态的代码&#xff08;源代码经编译之后形成的二进制格式的文件&#x…

轨道交通为什么要有信号系统?

轨道交通为什么要有信号系统&#xff1f;轨道交通信号系统与公路信号系统有什么不同&#xff1f; 在轨道交通中信号系统是必不可少的&#xff0c;其根本原因在于&#xff1a;在轨道交通中已经没有办法纯靠人力去保证行车安全。 在公路交通中&#xff0c;信号其实是起辅助作用的…

docker 挂载卷

以下是针对您遇到的问题分步解答和解决方案&#xff1a;一、核心结论 ✅ 可以采用目录方式&#xff1a;您的命令中的 -v /root/nginx05-vol/:/usr/share/nginx/html/ 是正确的目录挂载语法。 ❌ 看不到新文件的可能原因主要集中在 权限问题、缓存机制 或 操作顺序错误 上。二、…