Python 数据可视化:配色方案

1、引言

在这篇文章中,我们将研究Python的一些配色方案,主要是Seaborn库。这将采用 Python Notebook 格式,其中包括绘图的代码。

2、实验数据

首先导入必要的库:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

我们将使用 Seaborn 库的数据集之一,称为“tips”。

数据集摘要如下:

—244 笔餐厅订单交易(行)以及7个特征(列)

  • 账单总额(美元)

  • 小费(美元)

  • 性别(女/男)

  • 吸烟者(是/否)

  • 白天(周六、周日、周四、周五)

  • 时间(午餐、晚餐)

  • 尺寸(范围从1到6)

df = sns.load_dataset("tips")
df.head(7)

3、使用默认样式/调色板

现在让我们使用默认配色方案 (matplotlib) 在 seaborn barplot 中可视化每天的消费额:

sns.barplot(x="tip",y="day",data=df,orient="h")
plt.show()

4、更换样式

有五种样式可供选择,可以使用“set_style”或“set”来更改其余部分的图形样式。

句法:sns.set_style(“darkgrid”)

plt.figure(figsize=(9,8))
for i,style in enumerate(["white", "whitegrid", "dark", "darkgrid", "ticks"]):sns.set(style=style)plt.subplot(3,2,i+1)sns.barplot(x="tip",y="day",data=df,orient="h")plt.ylabel(None)plt.title("style: '"+style+"'",fontweight="bold")
plt.tight_layout()
plt.show()

现在我们的绘图样式是for循环中最新应用的样式,即“ticks”

sns.barplot(x="tip",y="day",data=df,orient="h")
plt.show()

如果想在不同部分使用不同的样式。可以使用“with”语句临时设置样式,该语句仅将样式应用于其下的绘图。

语法:with sns.axes_style(“darkgrid”)

with sns.axes_style("darkgrid"):sns.barplot(x="tip",y="day",data=df,orient="h")
plt.show()

5、更改调色板

除了定义样式之外,还可以调整调色板:

语法:sns.set(palette=”muted”)

可用的调色板名称:

Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu, GnBu_r, Greens, Greens_r, Greys, Greys_r, OrRd, OrRd_r, Oranges, Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r, Pastel2, Pastel2_r, PiYG, PiYG_r, PuBu, PuBuGn, PuBuGn_r, PuBu_r, PuOr, PuOr_r, PuRd, PuRd_r, Purples, Purples_r, RdBu, RdBu_r, RdGy, RdGy_r, RdPu, RdPu_r, RdYlBu, RdYlBu_r, RdYlGn, RdYlGn_r, Reds, Reds_r, Set1, Set1_r, Set2, Set2_r, Set3, Set3_r, Spectral, Spectral_r, Wistia, Wistia_r, YlGn, YlGnBu, YlGnBu_r, YlGn_r, YlOrBr, YlOrBr_r, YlOrRd, YlOrRd_r, afmhot, afmhot_r, autumn, autumn_r, binary, binary_r, bone, bone_r, brg, brg_r, bwr, bwr_r, cividis, cividis_r, cool, cool_r, coolwarm, coolwarm_r, copper, copper_r, cubehelix, cubehelix_r, flag, flag_r, gist_earth, gist_earth_r, gist_gray, gist_gray_r, gist_heat, gist_heat_r, gist_ncar, gist_ncar_r, gist_rainbow, gist_rainbow_r, gist_stern, gist_stern_r, gist_yarg, gist_yarg_r, gnuplot, gnuplot2, gnuplot2_r, gnuplot_r, gray, gray_r, hot, hot_r, hsv, hsv_r, icefire, icefire_r, inferno, inferno_r, jet, jet_r, magma, magma_r, mako, mako_r, nipy_spectral, nipy_spectral_r, ocean, ocean_r, pink, pink_r, plasma, plasma_r, prism, prism_r, rainbow, rainbow_r, rocket, rocket_r, seismic, seismic_r, spring, spring_r, summer, summer_r, tab10, tab10_r, tab20, tab20_r, tab20b, tab20b_r, tab20c, tab20c_r, terrain, terrain_r, twilight, twilight_r, twilight_shifted, twilight_shifted_r, viridis, viridis_r, vlag, vlag_r, winter, winter_r

sns.set(style="darkgrid",palette="Set2") 
sns.barplot(x="tip",y="day",data=df,orient="h") 
plt.show()

或者,可以使用以下语法来完全更改样式和调色板:plt.style.use(“ggplot”)

26种款式可选,“seaborn-muted”很好看。

plt.figure(figsize=(15,20)) 
for i,style in enumerate(plt.style.available): with plt.style.context(style): #with 关键字允许临时更改样式plt.subplot(9 ,3,i+1) sns.barplot(x="tip",y="day",data=df,orient="h") plt.ylabel (style) 
plt.tight_layout() 
plt.show()

现在可视化一些喜欢的样式,并看看它们在不同类型的图表中的外观:

sns.set(style="darkgrid")
palettes = ["muted","Set2","Set2_r","Pastel1","Pastel2","tab20"]
plt.figure(figsize=(15,24))
for i,palette in enumerate(palettes):plt.subplot(len(palettes),3,3*i+1)sns.set(palette=palette)sns.barplot(x="tip",y="day",data=df,orient="h")plt.title(palette,fontweight="bold",fontsize=15)plt.subplot(len(palettes),3,3*i+2)df["sex"].value_counts().plot.pie(autopct="%.1f%%", pctdistance=0.8,wedgeprops=dict(width=0.4))plt.title(palette,fontweight="bold",fontsize=15)ax3 = plt.subplot(len(palettes),3,3*i+3)df[["tip","total_bill","size"]].plot(ax=ax3)plt.title(palette,fontweight="bold",fontsize=15)
plt.tight_layout()
plt.show()

或者,对于散点图和线图,可以使用plt.cm.get_cmap()语法来选择调色板

import numpy as np
palette="Spectral"
plt.figure(figsize=(10,6))
plt.scatter(df.total_bill,df.tip,s=df["size"]**5,alpha=0.8,
c=np.arange(1,df.shape[0]+1),cmap=plt.cm.get_cmap(palette,df.shape[0]))

假设想要可视化数值变量的分布(“total_bill”、“tip”、“size”),但是由于它们的值范围不同,图表看起来不太漂亮:

sns.set(palette="Set2") 
plt.figure(figsize=(15,4)) 
for i,col in enumerate(["total_bill","tip","size"]): sns.distplot(df[ col],label=col) 
plt.xlabel("值") 
plt.legend() 
plt.show()

让我们在循环中使用子图来绘制它们。我们需要一个新函数来按照调色板的顺序进行颜色分布,否则它们将具有相同的颜色。

语法:sns.color_palette(“Set2”)

plt.figure(figsize=(15,4)) 
for i,col in enumerate(["total_bill","tip","size"]): plt.subplot(1,3,i+1) sns.distplot( df[col],color=sns.color_palette("Set2")[i]) plt.show()

6、手动着色

最后,可以手动选择自己的颜色集,而不是使用样式和调色板。

sns.boxplot(x=df.tip,y=df.day,hue=df.sex,palette=["salmon","darkslateblue"]) 
plt.show()

from  matplotlib.axes._axes  import _log as matplotlib_axes_logger 
matplotlib_axes_logger.setLevel('ERROR')
sns.boxenplot(x=df.tip,y=df.day,palette=["rosybrown","tab:olive","cornflowerblue","lightsteelblue","plum","sandybrown"]) 
plt.show()

sns.countplot(y="size",data=df,palette=["c","y","m","pink","deepskyblue","k"])

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

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

相关文章

unordered_map和unordered_set

目录 一、unordered_map 1.1、unordered_map的特点 1.2、unordered_map和map的区别 二、unordered_set 2.1、unordered_set的特点 2.2、unordered_set和set的区别 三、哈系桶的改造 3.1 结构设置 3.2 构造函数和析构函数 3.3 数据插入 3.4 数据查找 3.5 数据删除 …

STM32学习笔记三——深度讲解GPIO及其应用

目录 STM32GPIO端口位基本结构图: 结构图I/O引脚: GPIO输入输出总结 1.GPIO引脚的四种输入方式及其特点: 1)上拉输入(GPIO_Mode_IPU) 2)下拉输入(GPIO_Mode_IPD) 3)模拟输入(GPIO_Mode_AIN) 4)浮空输入(GPIO_Mode_IN_FLOATING…

【git】本地项目推送到github、合并分支的使用

1. github上创建仓库信息 点击个人头像,选择【你的仓库】 点击【新增】 填写仓库信息 2. 本地项目执行的操作 1.生成本地的git管理 (会生成一个.git的文件夹) git init 2.正常提交到暂存区,并填写提交消息 git add . git commit -m "init…

彻底学会系列:一、机器学习之线性回归

1.基本概念 线性回归: 有监督学习的一种算法。主要关注多个因变量和一个目标变量之间的关系。 因变量: 影响目标变量的因素: X 1 , X 2 . . . X_1, X_2... X1​,X2​... ,连续值或离散值。 目标变量: 需要预测的值: t…

Openresty+Lua+Redis实现高性能缓存

一、背景 当我们的程序需要提供较高的并发访问时,往往需要在程序中引入缓存技术,通常都是使用Redis作为缓存,但是要再更进一步提升性能的话,就需要尽可能的减少请求的链路长度,比如可以将访问Redis缓存从Tomcat服务器…

MQ面试题整理(持续更新)

1. MQ的优缺点 优点:解耦,异步,削峰 缺点: 系统可用性降低 系统引入的外部依赖越多,越容易挂掉。万一 MQ 挂了,MQ 一挂,整套系统崩 溃,你不就完了?系统复杂度提高 硬生…

ES高可用架构涉及常用功能整理

ES高可用架构涉及常用功能整理 1. es的高可用系统架构和相关组件2. es的核心参数2.1 常规配置2.2 特殊优化配置2.2.1 数据分片按ip打散2.2.2 数据分片机架感知2.2.3 强制要求数据分片机架感知2.2.4 写入线程池优化2.2.5 分片balance优化2.2.6 限流控制器优化 3. es常用命令3.1 …

前缀和 acwing

思路&#xff1a;两个数组&#xff0c;一个数组用来保存数据&#xff0c;一个数组来求对应项的和 前缀和S[r]-s[r-1] 空出来下标0 从1开始 方便表示&#xff0c;防止越界 c代码实现: #include<iostream> using namespace std; const int N1000000; int a[N],s[N]; …

344. Reverse String(反转字符串)

题目描述 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 问题分析 以中间字符为轴&#xff0c;将两边的字符对换…

CSS-IN-JS

CSS-IN-JS 为什么会有CSS-IN-JS CSS-IN-JS是web项目中将CSS代码捆绑在JavaScript代码中的解决方案。 这种方案旨在解决CSS的局限性&#xff0c;例如缺乏动态功能&#xff0c;作用域和可移植性。 CSS-IN-JS介绍 1&#xff1a;CSS-IN-JS方案的优点&#xff1a; 让css代码拥…

Java与SpringBoot:实现高效车险理赔信息管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

ArcGIS学习(三)数据可视化

ArcGIS学习(三)数据可视化 1.矢量数据可视化 需要提前说明的是,在ArcGIS中,所有的可视化选项设置都是在“图层属性”对话框里面的“符号系统”中实现的。 对于矢量数据的可视化,主要有四种可视化方式: 按“要素”可视化按“类别”可视化按“数量”可视化按“图表”可视…

【Elasticsearch】从入门到精通

目前java常见的针对大数据存储的方案并不多&#xff0c;常见的就是mysql的分库分表、es存储 这里偏向es存储方案&#xff0c;es不同的版本之间其实差异还挺大的&#xff0c;本篇博文版本Elasticsearch 7.14.0 Springboot整合Easy-Es Easy-Es官方文档 Elasticsearch的初步认识 …

机器翻译后的美赛论文怎么润色

美赛论文的语言表达一直是组委会看重的点&#xff0c;清晰的思路和地道的语言在评审中是重要的加分项。 今天我们就来讲讲美赛论文的语言问题。 我相信有相当一部分队伍在打美赛的时候&#xff0c;出于效率的考量&#xff0c;都会选择先写中文论文&#xff0c;再机翻成英文。 …

【蓝桥杯冲冲冲】[NOIP2003 普及组] 栈

蓝桥杯备赛 | 洛谷做题打卡day27 文章目录 蓝桥杯备赛 | 洛谷做题打卡day27题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题解代码我的一些话 [NOIP2003 普及组] 栈 题目背景 栈是计算机中经典的数据结构&#xff0c;简单的说&#xff0c;栈就是限制在一…

Linux校准时间 Centos

Linux校准时间 Centos 首先&#xff0c;确保系统中已经安装了tzdata包。如果没有安装&#xff0c;可以使用以下命令安装&#xff1a; sudo yum install tzdata设置系统时区为上海&#xff1a; sudo timedatectl set-timezone Asia/Shanghai验证时区设置是否生效&#xff1a;…

图解支付-金融级密钥管理系统:构建支付系统的安全基石

经常在网上看到某某公司几千万的个人敏感信息被泄露&#xff0c;这要是放在持牌的支付公司&#xff0c;可能就是一个非常大的麻烦&#xff0c;不但会失去用户的信任&#xff0c;而且可能会被吊销牌照。而现实情况是很多公司的技术研发人员并没有足够深的安全架构经验来设计一套…

RK3568平台 设备模型基本框架-kobject 和kset

一.什么是设备模型 字符设备驱动通常适用于相对简单的设备&#xff0c;对于一些更复杂的功能&#xff0c;比如说电源管理和热插拔事件管理&#xff0c;使用字符设备框架可能不够灵活和高效。为了应对更复杂的设备和功能&#xff0c;Linux内核提供了设备模型。设备模型允许开发…

Centos7安装图形界面并使用Win10远程桌面连接

Centos7安装图形界面并使用Win10远程桌面连接 一、关闭防火墙和selinux二、安装Server with GUI三、设置系统默认启动进入GUI界面四、安装epel库和xrdp五、启动xrdp并设置成开机自启六、win10电脑打开连接 一、关闭防火墙和selinux #临时关闭防火墙 [rootse1215 ~]# systemctl…

WordPress从入门到精通【安装部署】

初识WordPress WordPress&#xff0c;简称WP&#xff0c;其简称的由来是取英文单词“word”与“press”的首字母 WP中文官网 1WP主站&#xff08;英文&#xff09; 官方标称&#xff0c;已有43%的网站在使用WordPress WordPress亮点 WP使用PHP语言开发&#xff0c;兼容性极…