Seaborn绘制11个柱状图

x33g5p2x  于2022-07-05 转载在 其他  
字(1.8k)|赞(0)|评价(0)|浏览(492)

本文介绍的是如何使用seaborn来绘制各种柱状图

  • 基础柱状图
  • 水平柱状图
  • 标题设置
  • 基于DataFrame绘图
  • hue参数设置
  • 颜色处理
  • 多维度处理

个人很喜欢的一个Seaborn绘制的图形:

导入库

Seaborn是matplotlib的高级封装,所以matplotlib还是要同时导入:

In [1]:

  1. import pandas as pd
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import seaborn as sns
  5. %matplotlib inline
  6. sns.set_theme(style="whitegrid")
  7. sns.set_style('darkgrid')

导入内置数据

使用的是seaborn中内置的一份消费tips数据集:

In [2]:

  1. tips = sns.load_dataset("tips")
  2. tips.head()

基础柱状图

In [3]:

  1. = ["A","B","C"]
  2. = [1, 2, 3]
  3. sns.barplot(x, y)
  4. plt.show()

绘制水平柱状图:

  1. # 水平柱状图
  2. = ["A","B","C"]
  3. = [1, 2, 3]
  4. sns.barplot(y, x)
  5. plt.show()

设置标题

In [14]:

  1. = ["A","B","C"]
  2. = [1, 2, 3]
  3. fig = sns.barplot(x, y)
  4. fig.set_title('title of seaborn')
  5. plt.show()

指定x-y-data

In [5]:

  1. # 通过DataFrame来指定
  2. ax = sns.barplot(x="day", y="tip", data=tips)
  3. plt.show()

hue参数

实现的分组显示数据

In [6]:

  1. ax = sns.barplot(x="day", 
  2.         y="total_bill", 
  3.         hue="sex", 
  4.         data=tips)

水平柱状图

In [7]:

  1. ax = sns.barplot(x="total_bill", 
  2.                  y="day", 
  3.                  data=tips)

自定义顺序

In [8]:

  1. ax = sns.barplot(x="total_bill", 
  2.                  y="day", 
  3.                  # 添加order参数,指定顺序
  4.                  order=["Sat","Fri","Sun","Thur"],  # 自定义
  5.                  data=tips)

颜色处理

使用一种颜色

In [9]:

  1. ax = sns.barplot(x="size", 
  2.                  y="total_bill", 
  3.                  data=tips,
  4.                  color="salmon", 
  5.                  saturation=.5)

颜色渐变

In [10]:

  1. ax = sns.barplot(x="size", 
  2.                  y="tip", 
  3.                  data=tips,
  4.                  palette="Blues")

多维分组

In [11]:

  1. = sns.catplot(x="sex", 
  2.                 y="total_bill",
  3.                 hue="smoker", 
  4.                 col="time",
  5.                 data=tips, 
  6.                 kind="bar",
  7.                 height=4, 
  8.                 aspect=.7)

True/False分组

In [12]:

  1. tips["weekend"] = tips["day"].isin(["Sat", "Sun"])
  2. tips

Out[12]:

In [13]:

  1. ax = sns.barplot(x="day", 
  2.                  y="tip", 
  3.                  hue="weekend",
  4.                  data=tips, 
  5.                  dodge=False)

  1. - END -

相关文章