Seaborn条形图-教程和案例

本文详细介绍了如何使用Seaborn库在Python中创建条形图,包括基本条形图、水平条形图、分组条形图、颜色自定义、置信区间的调整,以及对数据的排序等,同时展示了使用泰坦尼克数据集进行实例演示。
摘要由CSDN通过智能技术生成

简介

Seaborn是应用最广泛的数据可视化Python库之一,是Matplotlib的扩展。它为数据可视化提供了简单,直观,可高度定制化的应用程序接口。
在本教程中,我们将演示Seaborn中如何绘制条形图。
条形图在一个轴上显示数量,另一个轴显示类别变量,以便你可以看到不同类别的值
条形图可用于时间序列以及分类数据的可视化。
在Seaborn中绘制条形图
在Matplotlib中绘制条形图,就像在PyPlot中调用bar()函数一样简单,输入我们想要可视化的分类变量和连续变量
import matplotlib.pyplot as plt
import seaborn as sns

sns.set_style(‘darkgrid’)

x = [‘A’, ‘B’, ‘C’]
y = [1, 5, 3]

sns.barplot(x, y)
plt.show()

这里,我们有一个列表存放了几个分类变量(A,B,C),还有一个列表存放了连续变量(1,5,3)。通过将两个列表的值传递给sns.barplot()函数而生成的条形图,将这两个列表内数据的关系实现了可视化。
这将生成如下简洁的条形图:
在这里插入图片描述

但是,大多数情况下,你需要处理的数据要远比以上的复杂的多,有时候,需要对数据进行运算,比如测距或计数。
无论何时运用各种方式处理数据的时候,都可能出现一些错误。值得庆幸的是,Seaborn为我们提供应对措施,会自动用误差线,默认使用我们所提供数据的平均值计算。
让我们导入经典的泰坦尼克数据集合,将这些数据处理为可视化的条形图
import matplotlib.pyplot as plt
import seaborn as sns

#Set Seaborn style
sns.set_style(‘darkgrid’)
#Import Data
titanic_dataset = sns.load_dataset(“titanic”)

#Construct plot
sns.barplot(x = “sex”, y = “survived”, data = titanic_dataset)
plt.show()
这一次,我们将数据集合中的性别和存活设定为X轴和Y轴,而不是用硬编码的列表。
如果我们打印数据集的表头:
print(titanic_dataset.head())
我们得到如下输出:
survived pclass sex age sibsp parch fare …
0 0 3 male 22.0 1 0 7.2500 …
1 1 1 female 38.0 1 0 71.2833 …
2 1 3 female 26.0 0 0 7.9250 …
3 1 1 female 35.0 1 0 53.1000 …
4 0 3 male 35.0 0 0 8.0500 …
5行*15列
当设置X和Y轴变量的时候一定要确保匹配这些特征的名字
最后,我们使用data参数,并传入正在使用的数据集,提取的特征也正是来自于此。结果如下:
在这里插入图片描述

在Seaborn中绘制水平条形图
绘制水平条形图代替垂直条形图,我们只需要将X和Y变量进行置换。
这将使类别变量显示在Y轴,生成水平图
import matplotlib.pyplot as plt
import seaborn as sns

x = [‘A’, ‘B’, ‘C’]
y = [1, 5, 3]

sns.barplot(y, x)
plt.show()
生成结果如下:
在这里插入图片描述

回到泰坦尼克数据集的案例,也是同样处理方法:
在这里插入图片描述

改变Seaborn中条形图颜色
改变条形图颜色非常简单。Color这个参数可以接收Matplotlib的颜色并应用于所有元素中。
我们来把他们都变成蓝色:
import matplotlib.pyplot as plt
import seaborn as sns

x = [‘A’, ‘B’, ‘C’]
y = [1, 5, 3]

sns.barplot(x, y, color=‘blue’)
plt.show()
结果如下:
在这里插入图片描述

或者,还有更好的选择,你可以设置palette参数,这个参数可以实现多种颜色。一个相当常用的参数是hls:
import matplotlib.pyplot as plt
import seaborn as sns

titanic_dataset = sns.load_dataset(“titanic”)

sns.barplot(x = “embark_town”, y = “survived”, palette = ‘hls’, data = titanic_dataset)
plt.show()
结果如下:
在这里插入图片描述

在Seaborn中绘制分组条形图
绘制分组条形图是常用的操作。比如你想比较一些基本数据,例如乘客的生存率,但同时你想把他们按照某种标准进行分组。比如你想将幸存的乘客,按照等级(一等,二等,三等)划分,但同时将他们登船地点也进行区分。
这对于绘制来说,信息量不少,但也是可以很轻松的用简单的条形图表达出来。
将条形图分组,我们可以用hug参数。从计数角度来说,正如字面意思,hue参数告诉Seaborn如何对条形图上色,单在上色的过程中,同时会把相关信息进行分组。
我们看下如上探讨后的演示案例:
import matplotlib.pyplot as plt
import seaborn as sns

titanic_dataset = sns.load_dataset(“titanic”)

sns.barplot(x = “class”, y = “survived”, hue = “embark_town”, data = titanic_dataset)
plt.show()
结果如下:
在这里插入图片描述

Queenstown的数据误差线非常大。这告诉我们从Queenstown登船的幸存乘客中,一等舱和二等舱的数据变化极大。
在Seaborn中对分组条形图进行排序
你可以改变默认条形图的顺序(Seaborn所想通常情况下会是最合理的)为你想要强调或展示的顺序。
这可以通过order参数来设定,该参数可以接收一个列表来存放值和你想要的顺序。
举个例子,目前,它是从一等舱到三等舱顺序排序。如果我们想反过来排序如何做?
import matplotlib.pyplot as plt
import seaborn as sns

titanic_dataset = sns.load_dataset(“titanic”)

sns.barplot(x = “class”, y = “survived”, hue = “embark_town”, order = [“Third”, “Second”, “First”], data = titanic_dataset)
plt.show()
运行代码得出以下结果:
在这里插入图片描述

更改Seaborn条形图的置信区间
你可以通过设置ci参数很轻松的调整置信区间
举个例子,你可以通过把它设置为None来关闭它,或者设置为sd使用标准差而不是均值,又或者出于美观的目的,将误差线设置为最大值capsize。
我们稍微调整下置信区间:
import matplotlib.pyplot as plt
import seaborn as sns

titanic_dataset = sns.load_dataset(“titanic”)

sns.barplot(x = “class”, y = “survived”, hue = “embark_town”, ci = None, data = titanic_dataset)
plt.show()

现在我们就看不到之前的误差线了。
在这里插入图片描述

或者,我们可以设置误差线为标准差,并设置为最大值:
import matplotlib.pyplot as plt
import seaborn as sns

titanic_dataset = sns.load_dataset(“titanic”)

sns.barplot(x = “class”, y = “survived”, hue = “who”, ci = “sd”, capsize = 0.1, data = titanic_dataset)
plt.show()
在这里插入图片描述

结论
在本教程中,我们探讨了集中使用Seaborn和Python绘制条形图的方法。我们从简单的条形图,水平条形图开始,并逐渐按需调整。
我们还谈到如何改变颜色,分组,排序和改变置信区间。
如果你对数据可视化感兴趣却又不知从何学起,请务必看下我们的书籍:《用Python实现数据可视化》(Data Visualization in Python.)
该书能够帮助Python开发者从入门达到中级水平,会指导你如何通过Pandas库实现简单的数据处理,还会涉及核心的绘制库,比如Matplotlib和Seaborn,并告诉你如何使用像Altair这类声明性和实验性库。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值