公众号:尤而小屋 作者:Peter 编辑:Peter
本文介绍的是如何使用seaborn来绘制各种柱状图
基础柱状图
水平柱状图
标题设置
基于DataFrame绘图
hue参数设置
颜色处理
多维度处理
个人很喜欢的一个Seaborn绘制的图形:
![11385765be3b256eab701b44498dad65.jpeg](https://i-blog.csdnimg.cn/blog_migrate/99a596d157cc201e3d62a6963db2d343.jpeg)
导入库
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()
![efe89c052625c6f226abd8a0527c3aa7.jpeg](https://i-blog.csdnimg.cn/blog_migrate/95beee7859edbe58cf166c64c6c7cab5.jpeg)
基础柱状图
In [3]:
x = ["A","B","C"]
y = [1, 2, 3]
sns.barplot(x, y)
plt.show()
![d7a7f84f9f52443ca5cf1a123b1460b3.jpeg](https://i-blog.csdnimg.cn/blog_migrate/b64f566d7c68991fb2ac7079907c9513.jpeg)
绘制水平柱状图:
# 水平柱状图
x = ["A","B","C"]
y = [1, 2, 3]
sns.barplot(y, x)
plt.show()
![6dd67cb11f4cab942e626645ed41c373.jpeg](https://i-blog.csdnimg.cn/blog_migrate/d977db44a27eb54630f8ca2511eb5ee1.jpeg)
设置标题
In [14]:
x = ["A","B","C"]
y = [1, 2, 3]
fig = sns.barplot(x, y)
fig.set_title('title of seaborn')
plt.show()
![476e572ea962bdd529c78e951a53c9a0.jpeg](https://i-blog.csdnimg.cn/blog_migrate/42ef93f45d55912c68560db5410edb44.jpeg)
指定x-y-data
In [5]:
# 通过DataFrame来指定
ax = sns.barplot(x="day", y="tip", data=tips)
plt.show()
![9f8960adaa572a48badf0f666fceddca.jpeg](https://i-blog.csdnimg.cn/blog_migrate/c78416ea73267d6746a0c8f3d1e42518.jpeg)
hue参数
实现的分组显示数据
In [6]:
ax = sns.barplot(x="day",
y="total_bill",
hue="sex",
data=tips)
![02449958dd935857a719e3662b164b3e.jpeg](https://i-blog.csdnimg.cn/blog_migrate/6479353d32077a2a6873b3a9b9c5c74a.jpeg)
水平柱状图
In [7]:
ax = sns.barplot(x="total_bill",
y="day",
data=tips)
![6fe5633087c0777067748cc34a0b26d2.jpeg](https://i-blog.csdnimg.cn/blog_migrate/435094ac4d1787abfada0a0b8c8910ed.jpeg)
自定义顺序
In [8]:
ax = sns.barplot(x="total_bill",
y="day",
# 添加order参数,指定顺序
order=["Sat","Fri","Sun","Thur"], # 自定义
data=tips)
![3d1aed7162b26e2723889ed2afd26f3e.jpeg](https://i-blog.csdnimg.cn/blog_migrate/6f411938cbc3eaf9f49fd0324dcae05a.jpeg)
颜色处理
使用一种颜色
In [9]:
ax = sns.barplot(x="size",
y="total_bill",
data=tips,
color="salmon",
saturation=.5)
![7de7eede77e7f5ae5b234b0bc26ec16e.jpeg](https://i-blog.csdnimg.cn/blog_migrate/56d26c795e87845f1ffc2246e93ee5a5.jpeg)
颜色渐变
In [10]:
ax = sns.barplot(x="size",
y="tip",
data=tips,
palette="Blues")
![e8351459f72b94d477f2b90bc9683895.jpeg](https://i-blog.csdnimg.cn/blog_migrate/d33ed56e8004690890542d18c8648a28.jpeg)
多维分组
In [11]:
g = sns.catplot(x="sex",
y="total_bill",
hue="smoker",
col="time",
data=tips,
kind="bar",
height=4,
aspect=.7)
![029fe13a2a6b5821920a2c5002a1dded.jpeg](https://i-blog.csdnimg.cn/blog_migrate/3269d83d974db1bf6e6edc570c998a36.jpeg)
True/False分组
In [12]:
tips["weekend"] = tips["day"].isin(["Sat", "Sun"])
tips
Out[12]:
![3b8216e728c36fc63cb55ee52cdcd1b8.jpeg](https://i-blog.csdnimg.cn/blog_migrate/ea6eee26c28b8705d8b0d42a34d8ede4.jpeg)
In [13]:
ax = sns.barplot(x="day",
y="tip",
hue="weekend",
data=tips,
dodge=False)
![2c9a1b553fc7a664a465ecadd5d99683.jpeg](https://i-blog.csdnimg.cn/blog_migrate/448c259bcd4501d21567334432a0d77b.jpeg)
往期精彩回顾
适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码