返回顶部
首页 > 资讯 > 后端开发 > Python >Python seaborn barplot画图案例
  • 313
分享到

Python seaborn barplot画图案例

2024-04-02 19:04:59 313人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录默认barplot使用案例修改capsize显示error bar的值annotata error barerror bar选取sd设置置信区间(68)设置置信区间(95)dat

默认barplot

import seaborn as sns
import matplotlib.pyplot as plt 
import numpy as np 

sns.set_theme(style="whitegrid")
df = sns.load_dataset("tips")
#默认画条形图
sns.barplot(x="day",y="total_bill",data=df)
plt.show()

#计算平均值看是否和条形图的高度一致
print(df.groupby("day").agg({"total_bill":[np.mean]}))
print(df.groupby("day").agg({"total_bill":[np.std]}))
# 注意这个地方error bar显示并不是标准差

     total_bill
           mean
day
Thur  17.682742
Fri   17.151579
Sat   20.441379
Sun   21.410000
     total_bill
            std
day
Thur   7.886170
Fri    8.302660
Sat    9.480419
Sun    8.832122

使用案例

# import libraries
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
# load dataset
tips = sns.load_dataset("tips")
# Set the figure size
plt.figure(figsize=(14, 8))
# plot a bar chart
ax = sns.barplot(x="day", y="total_bill", data=tips, estimator=np.mean, ci=85, capsize=.2, color='lightblue')

修改capsize

ax=sns.barplot(x="day",y="total_bill",data=df,capsize=1.0)
plt.show()

显示error bar的值

import seaborn as sns
import matplotlib.pyplot as plt 
sns.set_theme(style="whitegrid")
df = sns.load_dataset("tips")
#默认画条形图
ax=sns.barplot(x="day",y="total_bill",data=df)
plt.show()
for p in ax.lines:
    width = p.get_linewidth()
    xy = p.get_xydata() # 显示error bar的值
    print(xy)
    print(width)
    print(p)

[[ 0.         15.85041935]
 [ 0.         19.64465726]]
2.7
Line2D(_line0)
[[ 1.         13.93096053]
 [ 1.         21.38463158]]
2.7
Line2D(_line1)
[[ 2.         18.57236207]
 [ 2.         22.40351437]]
2.7
Line2D(_line2)
[[ 3.         19.66244737]
 [ 3.         23.50109868]]
2.7
Line2D(_line3)

annotata error bar

fig, ax = plt.subplots(figsize=(8, 6))
sns.barplot(x='day', y='total_bill', data=df, capsize=0.2, ax=ax)

# show the mean
for p in ax.patches:
    h, w, x = p.get_height(), p.get_width(), p.get_x()
    xy = (x + w / 2., h / 2)
    text = f'Mean:\n{h:0.2f}'
    ax.annotate(text=text, xy=xy, ha='center', va='center')

ax.set(xlabel='day', ylabel='total_bill')
plt.show()

error bar选取sd

import seaborn as sns
import matplotlib.pyplot as plt 
sns.set_theme(style="whitegrid")
df = sns.load_dataset("tips")
#默认画条形图
sns.barplot(x="day",y="total_bill",data=df,ci="sd",capsize=1.0)## 注意这个ci参数
plt.show()

print(df.groupby("day").agg({"total_bill":[np.mean]}))
print(df.groupby("day").agg({"total_bill":[np.std]}))

     total_bill
           mean
day
Thur  17.682742
Fri   17.151579
Sat   20.441379
Sun   21.410000
     total_bill
            std
day
Thur   7.886170
Fri    8.302660
Sat    9.480419
Sun    8.832122

设置置信区间(68)

import seaborn as sns
import matplotlib.pyplot as plt 
sns.set_theme(style="whitegrid")
df = sns.load_dataset("tips")
#默认画条形图
sns.barplot(x="day",y="total_bill",data=df,ci=68,capsize=1.0)## 注意这个ci参数
plt.show()

设置置信区间(95)

import seaborn as sns
import matplotlib.pyplot as plt 
sns.set_theme(style="whitegrid")
df = sns.load_dataset("tips")
#默认画条形图
sns.barplot(x="day",y="total_bill",data=df,ci=95)
plt.show()

#计算平均值看是否和条形图的高度一致
print(df.groupby("day").agg({"total_bill":[np.mean]}))

     total_bill
           mean
day
Thur  17.682742
Fri   17.151579
Sat   20.441379
Sun   21.410000

dataframe aggregate函数使用

#计算平均值看是否和条形图的高度一致
df = sns.load_dataset("tips")
print("="*20)
print(df.groupby("day").agg({"total_bill":[np.mean]})) # 分组求均值
print("="*20)
print(df.groupby("day").agg({"total_bill":[np.std]})) # 分组求标准差
print("="*20)
print(df.groupby("day").agg({"total_bill":"nunique"})) # 这里统计的是不同的数目
print("="*20)
print(df.groupby("day").agg({"total_bill":"count"})) # 这里统计的是每个分组样本的数量
print("="*20)
print(df["day"].value_counts())
print("="*20)
====================
     total_bill
           mean
day
Thur  17.682742
Fri   17.151579
Sat   20.441379
Sun   21.410000
====================
     total_bill
            std
day
Thur   7.886170
Fri    8.302660
Sat    9.480419
Sun    8.832122
====================
      total_bill
day
Thur          61
Fri           18
Sat           85
Sun           76
====================
      total_bill
day
Thur          62
Fri           19
Sat           87
Sun           76
====================
Sat     87
Sun     76
Thur    62
Fri     19
Name: day, dtype: int64
====================

dataframe aggregate 自定义函数

import numpy as np
import pandas as pd

df = pd.DataFrame({'Buy/Sell': [1, 0, 1, 1, 0, 1, 0, 0],
                   'Trader': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C']})
print(df)
def cateGorize(x):
    m = x.mean()
    return 1 if m > 0.5 else 0 if m < 0.5 else np.nan
result = df.groupby(['Trader'])['Buy/Sell'].agg([categorize, 'sum', 'count'])
result = result.rename(columns={'categorize' : 'Buy/Sell'})
result
   Buy/Sell Trader
0         1      A
1         0      A
2         1      B
3         1      B
4         0      B
5         1      C
6         0      C
7         0      C

dataframe aggregate 自定义函数2

df = sns.load_dataset("tips")
#默认画条形图

def custom1(x):
    m = x.mean()
    s = x.std()
    n = x.count()# 统计个数
    #print(n)
    return m+1.96*s/np.sqrt(n)
def custom2(x):
    m = x.mean()
    s = x.std()
    n = x.count()# 统计个数
    #print(n)
    return m+s/np.sqrt(n)
sns.barplot(x="day",y="total_bill",data=df,ci=95)
plt.show()
print(df.groupby("day").agg({"total_bill":[np.std,custom1]})) # 分组求标准差

sns.barplot(x="day",y="total_bill",data=df,ci=68)
plt.show()
print(df.groupby("day").agg({"total_bill":[np.std,custom2]})) #

​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pkCx72ui-1658379974318)(output_24_0.png)]

     total_bill
            std    custom1
day
Thur   7.886170  19.645769
Fri    8.302660  20.884910
Sat    9.480419  22.433538
Sun    8.832122  23.395703

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GFyIePmW-1658379974318)(output_24_2.png)]

     total_bill
            std    custom2
day
Thur   7.886170  18.684287
Fri    8.302660  19.056340
Sat    9.480419  21.457787
Sun    8.832122  22.423114

seaborn显示网格

ax=sns.barplot(x="day",y="total_bill",data=df,ci=95)
ax.yaxis.grid(True) # Hide the horizontal gridlines
ax.xaxis.grid(True) # Show the vertical gridlines

seaborn设置刻度

fig, ax = plt.subplots(figsize=(10, 8))
sns.barplot(x="day",y="total_bill",data=df,ci=95,ax=ax)
ax.set_yticks([i for i in range(30)])
ax.yaxis.grid(True) # Hide the horizontal gridlines

使用其他estaimator

#estimator 指定条形图高度使用相加的和
sns.barplot(x="day",y="total_bill",data=df,estimator=np.sum)
plt.show()
#计算想加和看是否和条形图的高度一致
print(df.groupby("day").agg({"total_bill":[np.sum]}))
'''
     total_bill
            sum
day
Fri      325.88
Sat     1778.40
Sun     1627.16
Thur    1096.33
'''

到此这篇关于python seaborn barplot画图案例的文章就介绍到这了,更多相关Python seaborn barplot 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python seaborn barplot画图案例

本文链接: https://lsjlt.com/news/119585.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python seaborn barplot画图案例
    目录默认barplot使用案例修改capsize显示error bar的值annotata error barerror bar选取sd设置置信区间(68)设置置信区间(95)dat...
    99+
    2024-04-02
  • 用python的seaborn画数值箱型图
    目录 一、概念介绍二、数据展示 三、数据导入  四、画图总结 一、概念介绍 箱型图(box-plot),又称为箱线图,盒型图,盒须图...
    99+
    2024-04-02
  • python数据可视化Seaborn画热力图
    目录1.引言2. 栗子3. 数据预处理4. 画热力图5. 添加数值6. 调色板优化1.引言 热力图的想法很简单,用颜色替换数字。 现在,这种可视化风格已经从最初的颜色编码表格走了很...
    99+
    2024-04-02
  • 怎么用python的seaborn画数值箱型图
    这篇文章主要为大家展示了“怎么用python的seaborn画数值箱型图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用python的seaborn画数值箱型图”这篇文章吧。 一、...
    99+
    2023-06-26
  • Python画图练习案例分享
    目录1.多边形的绘制案例2.太阳花案例3.颜色五角星案例4.艺术图片5.黑六边形6.绘制时钟7.绘制分形树8.彩虹线绘制案例1.多边形的绘制案例 # 多边形的绘制案例 import ...
    99+
    2024-04-02
  • 如何使用python数据可视化Seaborn画热力图
    这篇文章主要为大家展示了“如何使用python数据可视化Seaborn画热力图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用python数据可视化Seaborn画热力图”这篇文章吧。1....
    99+
    2023-06-22
  • Python+Seaborn绘制分布图的示例详解
    目录前言示例 1示例 2示例 3示例 4示例 5例子 6例子 7示例 8示例 9示例10前言 在本文中,我们将介绍10个示例,以掌握如何使用用于Python的Seaborn库创建图表...
    99+
    2024-04-02
  • Python编程使用matplotlib挑钻石seaborn画图入门教程
    目录scatter_plotlmplotjointplot挑钻石第二弹 seaborn是matplotlib的补充包,提供了一系列高颜值的figure,并且集成了多种在线数据集,通过...
    99+
    2024-04-02
  • Python之Seaborn实例分析
    今天小编给大家分享一下Python之Seaborn实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 安装 seab...
    99+
    2023-06-30
  • python画条形图实例
    本文实例为大家分享了python画条形图的具体代码,供大家参考,具体内容如下 在做毕设的过程中有些数据用表格来展现,会很难看出数据之间的差别,凸显不出数据的特点,所以想制作一个条形图...
    99+
    2024-04-02
  • Python matplotlib seaborn绘图教程详解
    目录一、seaborn概述二、数据整理01 折线图02 柱形图03 直方图三、绘图01 设定调色盘02 柱状图03 技术图04 点图05 箱型图06 小提琴图一、seaborn概述 ...
    99+
    2024-04-02
  • Python实现Matplotlib,Seaborn动态数据图的示例代码
    目录MatplotlibSeabornMatplotlib 效果图如下 主要使用matplotlib.animation.FuncAnimation,上核心代码, # 定义静态绘图...
    99+
    2024-04-02
  • Python中seaborn如何绘制矩阵图
    这篇文章主要介绍了Python中seaborn如何绘制矩阵图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。本文内容速览1、绘图数据准备还是使用鸢尾花iris数据集#导入本帖要...
    99+
    2023-06-29
  • R语言利用barplot()制作条形图的各种实例
    前言 函数barplot()可以绘制条形图,其格式为 barplot(height) height是一个向量或者矩阵,使用horiz=TRUE可以生成一个水平的条形图, 例子 1...
    99+
    2024-04-02
  • python graphviz画图的示例分析
    python graphviz画图的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言:最近要开始做课设来着,题目是哈夫曼编码,我琢磨着有什么办法可以打印出一...
    99+
    2023-06-22
  • 简单的python画图小实例
    import turtle as t t.goto(100,0) for i in range(100): t.left(80) t.fd(100) t.left(135) t....
    99+
    2023-01-31
    画图 实例 简单
  • Python画图小案例之小雪人超详细源码注释
    一步步教你怎么用Python画雪人,进一步熟悉Python的基础画图操作,废话不多说,上代码。 希望您给个关注给个赞,也算对我们的支持了。 class Shape: # ...
    99+
    2024-04-02
  • python画图
    #!/bin/env python#coding=utf8'''function: show total of all data in one picture write: zhanglejiedate: 2015/09/22'''impo...
    99+
    2023-01-31
    画图 python
  • python使用seaborn绘图直方图displot,密度图,散点图
    目录一、直方图distplot()二、密度图2.1 单个样本数据分布密度图一、直方图distplot() import numpy as np import seaborn as ...
    99+
    2024-04-02
  • python用pyecharts画地图实例介绍
    版本pyecharts 分为 v0.5.X 和 v1 两个大版本,v0.5.X 和 v1 间不兼容,v1 是一个全新的版本 v0.5.X支持 Python2.7,3.4+v1仅支持 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作