【Python】Seaborn绘制11个柱状图

公众号:尤而小屋   作者:Peter   编辑:Peter

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

  • 基础柱状图

  • 水平柱状图

  • 标题设置

  • 基于DataFrame绘图

  • hue参数设置

  • 颜色处理

  • 多维度处理

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

11385765be3b256eab701b44498dad65.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

基础柱状图

In [3]:

x = ["A","B","C"]
y = [1, 2, 3]

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

绘制水平柱状图:

# 水平柱状图

x = ["A","B","C"]
y = [1, 2, 3]

sns.barplot(y, x)
plt.show()
6dd67cb11f4cab942e626645ed41c373.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

指定x-y-data

In [5]:

# 通过DataFrame来指定

ax = sns.barplot(x="day", y="tip", data=tips)
plt.show()
9f8960adaa572a48badf0f666fceddca.jpeg

hue参数

实现的分组显示数据

In [6]:

ax = sns.barplot(x="day", 
        y="total_bill", 
        hue="sex", 
        data=tips)
02449958dd935857a719e3662b164b3e.jpeg

水平柱状图

In [7]:

ax = sns.barplot(x="total_bill", 
                 y="day", 
                 data=tips)
6fe5633087c0777067748cc34a0b26d2.jpeg

自定义顺序

In [8]:

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

颜色处理

使用一种颜色

In [9]:

ax = sns.barplot(x="size", 
                 y="total_bill", 
                 data=tips,
                 color="salmon", 
                 saturation=.5)
7de7eede77e7f5ae5b234b0bc26ec16e.jpeg

颜色渐变

In [10]:

ax = sns.barplot(x="size", 
                 y="tip", 
                 data=tips,
                 palette="Blues")
e8351459f72b94d477f2b90bc9683895.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

True/False分组

In [12]:

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

Out[12]:

3b8216e728c36fc63cb55ee52cdcd1b8.jpeg

In [13]:

ax = sns.barplot(x="day", 
                 y="tip", 
                 hue="weekend",
                 data=tips, 
                 dodge=False)
2c9a1b553fc7a664a465ecadd5d99683.jpeg
 
 

44ed27c58c664d08256ccd5fb5481d4c.jpeg

 
 
 
 
 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码

c03f2bf78865be790f3577c321ea6b5c.png

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值