当前位置: 首页 > news >正文

Seaborn可视化从入门到精通:风格设置、调色板与常用图表详解

Seaborn可视化

Seaborn的介绍

简介

​ Seaborn 是以 matplotlib为底层,更容易定制化作图的Python库。官网http://seaborn.pydata.org/

​ Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易。在大多数情况下使用Seaborn就能做出很具有吸引力的图,而使用

matplotlib就能制作具有更多特色的图,换句话说, matplotlib 更加灵活,可定制化,而Seaborn像是更高级的封装,使用方便快捷。

应该把Seaborn视为 matplotlib 的补充,而不是替代物。

安装

pip install seaborn

示例:seaborn简单使用

importmatplotlib.pyplotaspltimportseabornassns sns.set()plt.plot([1,5,10],[1,3,5])plt.show()

加载数据集

load_dataset()

seaborn默认提供了数据集,方便测试图表的使用

importseabornassan sns.load_dataset('tips')sns.get_data_home()

风格设置

​ 除了各种绘图方式外,图形的美观程度可能是我们最关心的了。将它放到第一部分,因为风格设置是一些通用性的操作,对于各种绘图方法都适用。

Seaborn 支持的风格有5种:

  • darkgrid 黑背景-白格
  • whitegrid 白背景-白格
  • dark 黑背景
  • white 白背景
  • ticks

设置风格的方法

  • set(style=‘’)

  • set_style(value) 统一设置

  • axes_style(value) 单一设置

importseabornassnsfrommatplotlibimportpyplotasplt# 支持直接修改matplotlib的样式#设置风格#设置风格,使用set_style()函数设置后,后面的图都会使用该风格sns.set_style('whitegrid')#绘图plt.plot([1,2,3],[4,5,6])data=sns.load_dataset('tips')# 5种样式sns.set_style('whitegrid')sns.barplot(data=data,x='sex',y='size')sns.set_style("white")sns.barplot(data=data,x='sex',y='size')sns.set_style("darkgrid")sns.barplot(data=data,x='sex',y='size')sns.set_style("dark")sns.barplot(data=data,x='sex',y='size')sns.set_style("ticks")sns.barplot(data=data,x='sex',y='size')# set方法实现sns.set(style='whitegrid')sns.barplot(data=data,x='sex',y='size')# 单独设置withsns.axes_style('darkgrid'):#临时设置风格sns.barplot(data=data,x='sex',y='size')

调色板

颜色比图形样式的其他方面更重要,因为如果有效使用颜色可以更凸显示数据的结果与重要

Seaborn可以轻松选择和使用适合您正在使用的数据类型的调色板以及您可视化的目标

支持的方法

  • color_palette() 能传入任何Matplotlib所支持的颜色
  • color_palette() 不写参数则,默认颜色 deep, muted, pastel, bright, dark, colorblind
  • color_palette() [“#9b59b6”, “#3498db”, “#95a5a6”, “#e74c3c”, “#34495e”, “#2ecc71”]
  • light_palette()
  • dark_palette()
  • set_palette()设置所有图的颜色

调色板

importseabornassns#获取默认调色板sns.color_palette()

sns.color_palette('deep')#seaborn支持的颜色,10个色块

连续的调色板

sns.color_palette('deep',6)#6种颜色sns.color_palette('Reds')#matplotlib支持的颜色sns.color_palette('Reds_r')#matplotlib支持的颜色,r表示reverse

自定义连续调色板

sns.palplot(sns.light_palette('green'))sns.palplot(sns.dark_palette('purple'))

xkcd_rgb 颜色

从xkcd_rgb这产生了一组颜色https://xkcd.com/color/rgb/,可以使用xkcd_rgb在seaborn中引用它们

sns.xkcd_palette(['purple','dark pink','algae','spring green','greyish blue'])

色板的应用

#设置到matplotlibfrommatplotlibimportpyplotasplt#plt.plot([1,3,2,4,5,],[1,9,4,16,25],color=sns.color_palette('husl')[2])plt.bar([1,3,2,4,5,],[1,9,4,16,25],color=sns.color_palette('husl',5))#设置到seabornsns.barplot(x=[1,2,3,4,5],y=[1,4,9,16,25],palette=sns.color_palette('husl',5),hue=[1,2,3,4,5],legend=False)

【图片7】

柱状图

常见方法

  • barplot方法 单独绘制条形图
  • catplot方法 可以条形图、散点图、盒图、小提亲图、等
  • countplot方法 统计数量

常规条图

importseabornassns#加载数据表tips=sns.load_dataset("tips")#常规数据表sns.barplot(data=tips,x='day',y='total_bill')

横向条图

importseabornassns# 示例数据tips=sns.load_dataset("tips")#横向条图sns.barplot(data=tips,x='total_bill',y='day')

分组条图

import seaborn as sns # 示例数据 tips = sns.load_dataset("tips") #分组条图 sns.barplot(data=tips,x="day", y="total_bill", hue="sex")

设置颜色

importseabornassns# 示例数据tips=sns.load_dataset("tips")#设置颜色sns.barplot(data=tips,x="day",y="total_bill",color="blue")#color适用与单色#设置颜色sns.barplot(data=tips,x="day",y="total_bill",hue="sex",palette='dark:salmon')#如果是多色,使用palette参数

统计数量

importseabornassns tips.groupby('day').count()

直方图

方法

  • histplot方法 绘制单变量或双变量直方图来显示数据集的分布
  • displot方法 绘制直方图、核密度图。可以比较多个变量分布情况

常规

importseabornassns# 示例数据tips=sns.load_dataset("tips")#统计单个指标的频数sns.histplot(tips['total_bill'])sns.displot(tips['total_bill'])

额外设置

额外的设置#直方图+ KDE核密度估计# 核密度估计的作用是用来估计概率密度函数的,它可以用来描述随机变量的密度分布# 一sns.displot(data=tips,x='total_bill',kde=True)# 二sns.histplot(data=tips,x='total_bill',kde=True)#设置分组# 一sns.histplot(data=tips,x='total_bill',kde=True,bins=10)# 二sns.displot(data=tips,x='total_bill',kde=True,bins=10)#设置多组sns.histplot(data=tips,x='total_bill',kde=True,hue='sex')sns.displot(data=tips,x='total_bill',kde=True,hue='sex')#设置多组显示的方式#layer:默认值,将多组数据叠加在一起sns.displot(data=tips,x='total_bill',kde=True,hue='sex',multiple='layer')#dodge:将多组数据分开显示sns.displot(data=tips,x='total_bill',kde=True,hue='sex',multiple='dodge')#stack:将多组数据堆叠显示sns.displot(data=tips,x='total_bill',kde=True,hue='sex',multiple='stack')#fill:以百分比堆叠的形式展示sns.displot(data=tips,x='total_bill',kde=True,hue='sex',multiple='fill')# 定制直方图sns.displot(data=tips,x='total_bill',kde=True,color='skyblue',edgecolor='black',linewidth=1)
http://www.cnnetsun.cn/news/2487251.html

相关文章:

  • 安全管理—计算机等级考试—软件设计师考前备忘录—东方仙盟
  • 用1Panel和Docker给幻兽帕鲁搭个私服,保姆级避坑指南(支持1.4.1/1.5.0)
  • Linux驱动开发:深入理解pinctrl与GPIO子系统协同工作原理
  • Jetson Orin Nano 新手避坑:从零部署YoloV5,我踩过的那些环境配置的‘雷’
  • LabVIEW项目移植必看:两种驱动文件存放位置的保姆级对比与实战选择
  • 工业无线通信新选择:IO-Link Wireless嵌入式模块开发实战指南
  • Redis详解以应用场景
  • 深入STM32WLE5的LoRa核心:对比SX126x裸驱与LoRaWAN协议栈,哪个更适合你的项目?
  • Redis缓存淘汰算法:LRU与LFU的实现原理与调优实战
  • 动手搭建一个‘能源局域网’:基于开源硬件的微型能源路由器原型构想
  • RT-Thread实战:基于STM32F103的线程创建与LED控制
  • 3分钟完成Windows包管理器Winget安装:PowerShell自动化部署方案
  • 微博相册批量下载神器:三步搞定海量图片收藏
  • 别再为RK3588 NPU环境头疼了!手把手教你用Conda搞定rknn-toolkit2安装(附国内源加速)
  • 深入理解STM32的FSMC:如何像访问内存一样轻松驱动TFTLCD屏
  • 开漏输出上拉电阻计算:从原理到I2C/GPIO实战选型
  • Android BroadcastReceiver 深度解析:原理、实践与面试指南
  • SpringBoot+Vue3实战:从零搭建一个咖啡店后台管理系统(附完整源码和数据库设计)
  • WPF TabControl美化实战:从默认丑到高级感,自定义样式与交互动画全攻略
  • 基于HPM6750 RISC-V的PX4飞控硬件设计与移植实战
  • 别再死记硬背了!用‘虚拟时间’这个比喻,5分钟彻底搞懂Linux CFS调度器
  • 你的STM32 RTC时间总跑飞?可能是LSE晶振和电池备份没配对
  • 别再为画图发愁了!手把手教你用开源神器draw.io搞定流程图和数学公式
  • 毕业设计救星:用STC89C52单片机+AD采集,手把手教你做一个400Hz中频电源(附完整电路图)
  • 逆向分析新思路:当Flutter遇上Frida,如何Hook加密函数并自吐算法参数?
  • Linux网络编程实战:从Socket基础到高并发服务器设计
  • 从‘黑窗口’到彩色世界:用GLUT快速实现你的第一个OpenGL图形程序(含完整代码解析)
  • UnityPackage Extractor终极指南:快速免费提取Unity资源包
  • ADS1110与51单片机I2C通信详解:手把手教你驱动并读取三路电压(附常见问题排查)
  • 用Python串口控制机械臂:从RS232协议解析到完整指令序列编程实战