【Python】Seaborn绘制11个柱状图
公众号:尤而小屋 作者:Peter 编辑:Peter
本文介绍的是如何使用seaborn来绘制各种柱状图
基础柱状图 水平柱状图 标题设置 基于DataFrame绘图 hue参数设置 颜色处理 多维度处理
个人很喜欢的一个Seaborn绘制的图形:
![](https://filescdn.proginn.com/d0c3e5bd63d88c0157a831dddaf1fb9b/b37bdfbaca68bed738453ff7baa0c33e.webp)
导入库
Seaborn是matplotlib的高级封装,所以matplotlib还是要同时导入:
In [1]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
sns.set_theme(style="whitegrid")
sns.set_style('darkgrid')
导入内置数据
使用的是seaborn中内置的一份消费tips数据集:
In [2]:
tips = sns.load_dataset("tips")
tips.head()
![](https://filescdn.proginn.com/2b6cc6c285864dad1a6b24a345aec9b1/7ba27b7a4b47967ca0861ec059f87487.webp)
基础柱状图
In [3]:
x = ["A","B","C"]
y = [1, 2, 3]
sns.barplot(x, y)
plt.show()
![](https://filescdn.proginn.com/f8c3f239a3cdd68fcf439487ca68d68a/817c8a0600ce9763118f76aad3adafd9.webp)
绘制水平柱状图:
# 水平柱状图
x = ["A","B","C"]
y = [1, 2, 3]
sns.barplot(y, x)
plt.show()
![](https://filescdn.proginn.com/e8fe9ddd1fe8dfacf6b1054b1d1072d3/625830d3482a4948794a265083600560.webp)
设置标题
In [14]:
x = ["A","B","C"]
y = [1, 2, 3]
fig = sns.barplot(x, y)
fig.set_title('title of seaborn')
plt.show()
![](https://filescdn.proginn.com/2c51fc05b840ae4d9da18d57fcdfb605/5440ffbc1bca1051ed7b177318452325.webp)
指定x-y-data
In [5]:
# 通过DataFrame来指定
ax = sns.barplot(x="day", y="tip", data=tips)
plt.show()
![](https://filescdn.proginn.com/cb4214ffb5c2771976f024c2dcc211c2/abb2de6e8a0153f51081d063ea679711.webp)
hue参数
实现的分组显示数据
In [6]:
ax = sns.barplot(x="day",
y="total_bill",
hue="sex",
data=tips)
![](https://filescdn.proginn.com/2d6723dec0d0424151ec3fc93610854d/06559322edb21fb24ae5eb7aa3ce2db5.webp)
水平柱状图
In [7]:
ax = sns.barplot(x="total_bill",
y="day",
data=tips)
![](https://filescdn.proginn.com/274a596b456e96547157c25b716c93e6/6f0be983c7bd93647ae45d7d9603658e.webp)
自定义顺序
In [8]:
ax = sns.barplot(x="total_bill",
y="day",
# 添加order参数,指定顺序
order=["Sat","Fri","Sun","Thur"], # 自定义
data=tips)
![](https://filescdn.proginn.com/ce72aa6b779d7b2d74cbb31eb9b6689a/1ab562f2ecfe2def3b3fac86e03a5f5c.webp)
颜色处理
使用一种颜色
In [9]:
ax = sns.barplot(x="size",
y="total_bill",
data=tips,
color="salmon",
saturation=.5)
![](https://filescdn.proginn.com/5d3029e38f7d0b4bd9003531ead82a23/1e14ce1f165e2d90cd2bf4748bd9b7e0.webp)
颜色渐变
In [10]:
ax = sns.barplot(x="size",
y="tip",
data=tips,
palette="Blues")
![](https://filescdn.proginn.com/ea5db1695f965db9aacf4fbcc447e68f/2857e1b3a7a134954011b4858da88831.webp)
多维分组
In [11]:
g = sns.catplot(x="sex",
y="total_bill",
hue="smoker",
col="time",
data=tips,
kind="bar",
height=4,
aspect=.7)
![](https://filescdn.proginn.com/52e652bf5d96ba14ca0ed4b6ac283f60/bf3fa68eb07cce5580bbf0d084a94b3a.webp)
True/False分组
In [12]:
tips["weekend"] = tips["day"].isin(["Sat", "Sun"])
tips
Out[12]:
![](https://filescdn.proginn.com/33edbcd9b0caf75eb7736c0903ef7a26/7889b66e22d206f26fb558787bcea404.webp)
In [13]:
ax = sns.barplot(x="day",
y="tip",
hue="weekend",
data=tips,
dodge=False)
![](https://filescdn.proginn.com/ec9e5983da28f15f7b72445607f53040/60c604eda7170e1d55fd8364ab8ad236.webp)
往期精彩回顾
适合初学者入门人工智能的路线及资料下载 (图文+视频)机器学习入门系列下载 中国大学慕课《机器学习》(黄海广主讲) 机器学习及深度学习笔记等资料打印 《统计学习方法》的代码复现专辑 机器学习交流qq群955171419,加入微信群请扫码
评论