基于Seaborn绘制柱状图
本文介绍的是如何使用seaborn来绘制各种柱状图
导入库
Seaborn是matplotlib的高级封装,所以matplotlib还是要同时导入:
In [1]:
代码语言:javascript复制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]:
代码语言:javascript复制tips = sns.load_dataset("tips")
tips.head()
基础柱状图
In [3]:
代码语言:javascript复制x = ["A","B","C"]
y = [1, 2, 3]
sns.barplot(x, y)
plt.show()
绘制水平柱状图:
代码语言:javascript复制# 水平柱状图
x = ["A","B","C"]
y = [1, 2, 3]
sns.barplot(y, x)
plt.show()
设置标题
In [14]:
代码语言:javascript复制x = ["A","B","C"]
y = [1, 2, 3]
fig = sns.barplot(x, y)
fig.set_title('title of seaborn')
plt.show()
指定x-y-data
In [5]:
代码语言:javascript复制# 通过DataFrame来指定
ax = sns.barplot(x="day", y="tip", data=tips)
plt.show()
hue参数
实现的分组显示数据
In [6]:
代码语言:javascript复制ax = sns.barplot(x="day",
y="total_bill",
hue="sex",
data=tips)
水平柱状图
In [7]:
代码语言:javascript复制ax = sns.barplot(x="total_bill",
y="day",
data=tips)
自定义顺序
In [8]:
代码语言:javascript复制ax = sns.barplot(x="total_bill",
y="day",
# 添加order参数,指定顺序
order=["Sat","Fri","Sun","Thur"], # 自定义
data=tips)
颜色处理
使用一种颜色
In [9]:
代码语言:javascript复制ax = sns.barplot(x="size",
y="total_bill",
data=tips,
color="salmon",
saturation=.5)
颜色渐变
In [10]:
代码语言:javascript复制ax = sns.barplot(x="size",
y="tip",
data=tips,
palette="Blues")
多维分组
In [11]:
代码语言:javascript复制g = sns.catplot(x="sex",
y="total_bill",
hue="smoker",
col="time",
data=tips,
kind="bar",
height=4,
aspect=.7)
True/False分组
In [12]:
代码语言:javascript复制tips["weekend"] = tips["day"].isin(["Sat", "Sun"])
tips
In [13]:
代码语言:javascript复制ax = sns.barplot(x="day",
y="tip",
hue="weekend",
data=tips,
dodge=False)