aborn学习笔记(三):直方图、条形图、条带图

更新时间:2023-07-20 18:21:19 阅读: 评论:0

aborn学习笔记(三):直⽅图、条形图、条带图
1 直⽅图与条形图
在过去很长⼀段时间,我⼀直分不清直⽅图和条形图,或者说⼀直认为两者是⼀样的,直到看到histplot()和barplot()两个绘图⽅法,前者是绘制直⽅图,后者是绘制条形图。通过仔细对⽐两者各项功能后,我得出结论,两者⼗分相似,但有些许不同:直⽅图侧重于统计数据在数轴上各个位置的分布情况,统计的对象往往是连续型数值数据的,根据数值的⼤⼩分区间进⾏分组统计,例如有100个学⽣的⾝⾼,需要统计100个学⽣在各个⾝⾼段的分布情况;条形图不同,条形图分组往往是针对离散型数据或者说定性的分类数据,例如对⽐男⽣的平均⾝⾼和⼥⽣的平均⾝⾼。不知道我这么理解对不对,欢迎留⾔讨论。
2 histplot():直⽅图
主要参数如下:
data:绘图数据,可以是pandas.DataFrame,numpy.ndarray或者字典等
x,y:指定的x轴, y轴数据,可以是向量或者字符串,当是字符串时,⼀定是data中的⼀个key
hue:可以是向量(pandas中的⼀列,或者是list),也可以是字符串(data中的⼀个key),aborn将根据这⼀列设置不同颜⾊
weights: 数据加权的权重
stat: 柱形的统计⽅式
1)count:统计每个区间的值的个数
那一款智能手环好2)frequency:区间内取值个数除以区间宽度
3)probability或proportion:进⾏标准化使条形⾼度总和为1
4)percent:标准化使条形总⾼度为100
5)使条形总⾯积为1
bins: 字符型、整型、向量都可以,可以是引⽤规则的名称、箱⼦的数量或箱⼦的分段或者分箱规则名称,规则名称见下⽅⽰例
binwidth: 条形宽度
binrange: 条形边缘的最⼤值或最⼩值
discrete: 如果为True,则默认为binwidth=1,并绘制条形图,使其位于相应数据点的中⼼。这避免了在使⽤离散(整数)数据时可能出现的“间隙”。
cumulative: 布尔型,是否逐个累加每个条形⾼度进⾏绘图
multiple: 直接看下⽂效果吧
element: 直接看下⽂效果吧
fill: 条形内部是否填充颜⾊
shrink: 缩⼩条形的宽度
kde: 是否⽣成核密度曲线
color: 设置条形颜⾊
legend: 是否显⽰图例
ax: 绘图的坐标轴实例
In [1]:
1
import numpy as np 2
import pandas as pd 3import matplotlib.pyplot as plt 4import aborn as sns
In [2]:penguins = sns.load_datat('penguins',data_home='.')
In [3]:过贾谊旧居
penguins.head(2)
个人借款模板2.1 为图像设置标题histplot()⽅法返回值为matplotlib.axes._subplots.AxesSubplot 类实例,通过实例的t_title()⽅法可以为图像添加标题:In [4]:
1pic = sns.histplot(penguins, x="flipper_length_mm")2pic.t_title('flipper_length_mm')
2.2 ax:⾃定义绘图坐标系
在不传递ax参数时,aborn会⾃⾏创建坐标系进⾏绘图,我们也可以⾃⼰创建坐标系,通过ax参数传递,这样做的好处是可以灵活绘制多个⼦图:
In [5]:
1
fig, ax =plt.subplots(1,2,constrained_layout=True, figsize=(8, 3))2pic = sns.histplot(penguins, x="flipper_length_mm", ax=ax[0])3pic = sns.histplot(penguins, x="body_mass_g", ax=ax[1])Out[3]:
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g x 0
Adelie Torgern 39.118.7181.03750.0Male 1Adelie Torgern 39.517.4186.03800.0Female Out[4]:Text(0.5, 1.0, 'flipper_length_mm')
另外,在histplot()⽅法中,没有提供太多关于坐标轴设置的参数,难以对坐标轴进⾏个性化定制,如果在绘图前,先创建好坐标轴,即可完成对坐标轴的设置(关于坐标轴的创建和设置,请参考
In [6]:
1ax=plt.axes((0.1, 0.1, 0.8, 0.7), facecolor='green')
2pic = sns.histplot(penguins, x="flipper_length_mm", ax=ax)
2.3 x, y:传递数据,控制图形⽅向蔓长春花
x, y参数不能同时传递,当传递x时,x轴为数据取值范围,y轴为统计次数;当传递y值时,y轴为数据取值范围,x轴为统计次数:
In [7]:
1fig, ax =plt.subplots(1,2,constrained_layout=True, figsize=(8, 3))
2pic = sns.histplot(penguins, x="flipper_length_mm", ax=ax[0])
3pic.t_title('x')
4pic = sns.histplot(penguins, y="flipper_length_mm", ax=ax[1])
5pic.t_title('y')
Out[7]:
Text(0.5, 1.0, 'y')
2.4 stat:y轴显⽰数据的⽅式
In [8]:
1fig, ax =plt.subplots(1,5,constrained_layout=True, figsize=(15, 3))
2_ = sns.histplot(penguins, x="flipper_length_mm", stat="count", ax=ax[0])      # count, 也是默认值
3_ = sns.histplot(penguins, x="flipper_length_mm", stat="frequency", ax=ax[1])  # frequency
4_ = sns.histplot(penguins, x="flipper_length_mm", stat="probability", ax=ax[2])# probability
5_ = sns.histplot(penguins, x="flipper_length_mm", stat="percent", ax=ax[3])    # percent
6_ = sns.histplot(penguins, x="flipper_length_mm", stat="density", ax=ax[4])    # density
2.5 b ins:指定分箱⽅式
指定分箱个数或者每个条形区间进⾏绘图:
In [9]:
生姜种植时间和方法
1fig, ax =plt.subplots(1,3,constrained_layout=True, figsize=(12, 3))
2pic = sns.histplot(penguins, x="flipper_length_mm", ax=ax[0], bins=5)村庄建设
3pic.t_title('bins=5')
4pic = sns.histplot(penguins, x="flipper_length_mm", ax=ax[1], bins=10)
5pic.t_title('bins=10')
6pic = sns.histplot(penguins, x="flipper_length_mm", ax=ax[2], bins=[150, 175, 200, 225, 250])
7pic.t_title('bins=[150, 175, 200, 225, 250]')
Text(0.5, 1.0, 'bins=[150, 175, 200, 225, 250]')
也可以指定分箱的规则:
In [10]:
1fig, ax =plt.subplots(2,4,constrained_layout=True, figsize=(15, 6))
2pic = sns.histplot(penguins, x="flipper_length_mm", bins="auto", ax=ax[0][0])      # count, 也是默认值
3pic.t_title('auto')
4pic = sns.histplot(penguins, x="flipper_length_mm", bins="fd", ax=ax[0][1])  # frequency
5pic.t_title('fd')
6pic = sns.histplot(penguins, x="flipper_length_mm", bins="doane", ax=ax[0][2])# probability
7pic.t_title('doane')
8pic = sns.histplot(penguins, x="flipper_length_mm", bins="scott", ax=ax[0][3])    # percent
9pic.t_title('scott')
10pic = sns.histplot(penguins, x="flipper_length_mm", bins="stone", ax=ax[1][0])      # count, 也是默认值
11pic.t_title('stone')
12pic = sns.histplot(penguins, x="flipper_length_mm", bins="rice", ax=ax[1][1])  # frequency
13pic.t_title('rice')
14pic = sns.histplot(penguins, x="flipper_length_mm", bins="sturges", ax=ax[1][2])# probability
15pic.t_title('sturges')
16pic = sns.histplot(penguins, x="flipper_length_mm", bins="sqrt", ax=ax[1][3])    # percent
我是服务员
17pic.t_title('sqrt')
1D:\ProgramData\Anaconda3\envs\machine_learning\lib\site-packages\numpy\lib\histograms.py:669: RuntimeWarning: The number of bins estimated may 2  bin_edges, _ = _get_bin_edges(a, bins, range, weights)
Out[10]:
Text(0.5, 1.0, 'sqrt')
2.6 b inwid th:设置柱形宽度
In [11]:
1fig, ax =plt.subplots(1,2,constrained_layout=True, figsize=(8, 3))
2_ = sns.histplot(penguins, x="flipper_length_mm", ax=ax[0], binwidth=1)
3_ = sns.histplot(penguins, x="flipper_length_mm", ax=ax[1], binwidth=3)
2.7 cumulative:累积每个条形⾼度进⾏绘图
In [12]:
sns.histplot(penguins, x="flipper_length_mm", cumulative=True)
<AxesSubplot:xlabel='flipper_length_mm', ylabel='Count'>
In [13]:
sns.histplot(penguins, x="flipper_length_mm", multiple="layer")
Out[13]:
<AxesSubplot:xlabel='flipper_length_mm', ylabel='Count'>
2.8 hue:颜⾊区分条形组成
In [14]:
_ = sns.histplot(penguins, x="flipper_length_mm", hue="species")
2.9 element
In [15]:
ppt怎么转换成word文档1fig, ax =plt.subplots(1,3,constrained_layout=True, figsize=(12, 3))
2pic = sns.histplot(penguins, x="flipper_length_mm", hue="species", ax=ax[0], element="bars") 3pic.t_title('element="bars"')
4pic = sns.histplot(penguins, x="flipper_length_mm", hue="species", ax=ax[1], element="step") 5pic.t_title('element="step')
6pic = sns.histplot(penguins, x="flipper_length_mm", hue="species", ax=ax[2], element="poly") 7pic.
t_title('element="poly"')
Out[15]:
Text(0.5, 1.0, 'element="poly"')
2.10 multiple
In [16]:
1fig, ax =plt.subplots(1,4,constrained_layout=True, figsize=(16, 3))
2pic = sns.histplot(penguins, x="flipper_length_mm", hue="species", ax=ax[0], multiple="layer") 3pic.t_title('multiple="layer"')
4pic = sns.histplot(penguins, x="flipper_length_mm", hue="species", ax=ax[1], multiple="dodge") 5pic.t_title('multiple="dodge')
6pic = sns.histplot(penguins, x="flipper_length_mm", hue="species", ax=ax[2], multiple="stack") 7pic.t_title('multiple="stack"')
8pic = sns.histplot(penguins, x="flipper_length_mm", hue="species", ax=ax[3], multiple="fill")
9pic.t_title('multiple="fill"')

本文发布于:2023-07-20 18:21:19,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1107352.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:条形   数据   坐标轴   设置   统计   条形图
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图