python seaborn 直方图,Python seaborn
Seaborn库是基于python中matplotlib库的可视化工具库。通过sns,我们可以更方便的画出更漂亮的图表。本文将分享python基于Seaborn库的一系列画图操作,有兴趣的可以了解一下。
00-1010 1.安装seaborn2。准备数据3。背景和边框3.1设置背景样式3.2其他3.3边框控件4。画散点图5。绘制折线图5.1使用replot()方法5.2使用lineplot()方法6。绘制直方图displot()7。绘制柱状图()8。画一个线性回归模型。画一个核密度图kdeplot()9.1一般核密度图9.2边际核密度图10。画一个方框图boxplot()11。画一张小提琴图violinplot()12。绘制热图()
目录
安装:
pip安装seaborn
导入:
将seaborn作为sns导入
1. 安装 seaborn
在开始之前,我们将准备一组数据,并使用下面的代码,以便于显示。
进口熊猫作为pd
将numpy作为np导入
将matplotlib.pyplot作为plt导入
将seaborn作为sns导入
PD . set _ option( display . unicode . east _ Asian _ width ,True)
df1=pd。数据帧(
{ 数据序号 3360 [1,2,3,4,5,6,7,8,9,10,11,12],
制造商编号 3360 [001 , 001 , 001 , 002 , 002 , 003 , 003 , 004 ,
产品类型 3360 [AAA , BBB , CCC , AAA , BBB , CCC , AAA , CCC , AAA , BBB , CCC],
属性值‘3360[40,70,60,75,90,82,73,99,125,105,137,120],
b属性值 3360 [24,36,52,32,49,68,77,90,74,88,98,99],
c属性值 3360 [30,36,55,46,68,77,72,89,99,90,115,101]
}
)
打印(df1)
生成如下一组数据:
2.准备数据
3.背景与边框
样式设置使用sns.set_style()方法,这里内置的样式使用背景色来表示名称,但实际内容并不限于背景色。
sns.set_style()
您可以从以下背景样式中选择:
网格白色网格深灰色背景白色白色背景刻度ems
p;四周带刻度线的白色背景
sns.set()
sns.set_style(darkgrid)
sns.set_style(whitegrid)
sns.set_style(dark)
sns.set_style(white)
sns.set_style(ticks)
其中sns.set()表示使用自定义样式,如果没有传入参数,则默认表示灰色网格背景风格。如果没有set()也没有set_style(),则为白色背景。
一个可能的bug:使用relplot()方法绘制出的图像,"ticks"样式无效。
3.2 其他
seaborn库是基于matplotlib库而封装的,其封装好的风格可以更加方便我们的绘图工作。而matplotlib库常用的语句,在使用seaborn库时也依然有效。
关于设置其他风格相关的属性,如字体,这里有一个细节需要注意的是,这些代码必须写在sns.set_style()的后方才有效。如将字体设置为黑体(避免中文乱码)的代码:
plt.rcParams[‘font.sans-serif’] = [‘SimHei’]
如果在其后方设置风格,则设置好的字体会设置的风格覆盖,从而产生警告。其他属性也同理。
3.3 边框控制
sns.despine()方法
# 移除顶部和右部边框,只保留左边框和下边框
4. 绘制 散点图
使用seaborn库 绘制散点图,可以使用replot()方法,也可以使用scatter()方法。
replot方法的参数kind默认是’scatter’,表示绘制散点图。
hue参数表示 在该一维度上,用颜色区分
①对A属性值和数据序号绘制散点图,红色散点,灰色网格,保留左、下边框
sns.set_style(‘darkgrid)
②对A属性值和数据序号绘制散点图,散点根据产品类型的不同显示不同的颜色,
白色网格,左、下边框:
sns.set_style(‘whitegrid)
③将A属性、B属性、C属性三个字段的值用不同的样式绘制在同一张图上(绘制散点图),x轴数据是[0,2,4,6,8…]
ticks风格(四个方向的框线都要),字体使用楷体
sns.set_style(‘ticks)
5. 绘制 折线图
使用seaborn库绘制折线图, 可以使用replot()方法,也可以使用lineplot()方法。
5.1 使用 replot()方法
sns.replot()默认绘制的是散点图,绘制折线图只需吧参数kind改为"line"。
①需求:绘制A属性值与数据序号的折线图,
灰色网格,全局字体为楷体;并调整标题、两轴标签 的字体大小,
以及坐标系与画布边缘的距离(设置该距离是因为字体没有显示完全):
sns.set(rc={‘font.sans-serif: “STKAITI”})
②需求:绘制不同产品类型的A属性折线(三条线一张图),whitegrid风格,字体楷体。
sns.set_style(“whitegrid”)
③需求:将A属性、B属性、C属性三个字段的值用不同的样式绘制在同一张图上(绘制折线图),x轴数据是[0,2,4,6,8…]
darkgrid风格(四个方向的框线都要),字体使用楷体,并加入x轴标签,y轴标签和标题。边缘距离合适。
sns.set_style(‘darkgrid)
③多重子图
横向多重子图 col
sns.set_style(‘darkgrid)
纵向多重子图 row
sns.set_style(‘darkgrid)
5.2 使用 lineplot()方法
使用lineplot()方法绘制折线图,其他细节基本同上,示例代码如下:
sns.set_style(‘darkgrid)
sns.set_style(‘darkgrid)
6. 绘制直方图 displot()
绘制直方图使用的是sns.displot()方法
bins=6 表示 分成六个区间绘图
rug=True 表示在x轴上显示观测的小细条
kde=True表示显示核密度曲线
sns.set_style(‘darkgrid)
随机生成300个正态分布数据,并绘制直方图,显示核密度曲线
sns.set_style(‘darkgrid)
7. 绘制条形图 barplot()
绘制条形图使用的是barplot()方法
以产品类型 字段数据作为x轴数据,A属性值数据作为y轴数据。按照厂商编号字段的不同进行分类。
具体如下:
sns.set_style(‘darkgrid)
8. 绘制线性回归模型
绘制线性回归模型使用的是lmplot()方法。
主要的参数为x, y, data。分别表示x轴数据、y轴数据和数据集数据。
除此之外,同上述所讲,还可以通过hue指定分类的变量;
通过col指定列分类变量,以绘制 横向多重子图;
通过row指定行分类变量,以绘制 纵向多重子图;
通过col_wrap控制每行子图的数量;
通过size可以控制子图的高度;
通过markers可以控制点的形状。
下边对 X属性值 和 Y属性值 做线性回归,代码如下:
sns.set_style(‘darkgrid)
9. 绘制 核密度图 kdeplot()
9.1 一般核密度图
绘制和密度图,可以让我们更直观地看出样本数据的分布特征。绘制核密度图使用的方法是kdeplot()方法。
对A属性值和B属性值绘制核密度图,
将shade设置为True可以显示包围的阴影,否则只有线条。
sns.set_style(‘darkgrid)
9.2 边际核密度图
绘制边际核密度图时使用的是sns.jointplot()方法。参数kind应为"kde"。使用该方法时,默认使用的是dark样式。且不建议手动添加其他样式,否则可能使图像无法正常显示。
plt.rcParams[‘font.sans-serif] = [‘STKAITI]
10. 绘制 箱线图 boxplot()
绘制箱线图使用到的是boxplot()方法。
基本的参数有x, y, data。
除此之外 还可以有
hue 表示分类字段
width 可以调节箱体的宽度
notch 表示中间箱体是否显示缺口,默认False不显示。
鉴于前边的数据数据量不太够不便展示,这里再生成一组数据:
np.random.seed(13)
生成好后,开始绘制箱线图:
plt.rcParams[‘font.sans-serif] = [‘STKAITI]
交换x、y轴数据后:
plt.rcParams[‘font.sans-serif] = [‘STKAITI]
可以看到箱线图的方向也随之改变
将厂商编号作为分类字段:
plt.rcParams[‘font.sans-serif] = [‘STKAITI]
11. 绘制 提琴图 violinplot()
提琴图结合了箱线图和核密度图的特征,用于展示数据的分布形状。
使用violinplot()方法绘制提琴图。
plt.rcParams[‘font.sans-serif] = [‘STKAITI]
plt.rcParams[‘font.sans-serif] = [‘STKAITI]
plt.rcParams[‘font.sans-serif] = [‘STKAITI]
12. 绘制 热力图 heatmap()
以双色球中奖号码数据为例绘制热力图,这里数据采用随机数生成。
import pandas as pd
到此这篇关于Python数据可视化之Seaborn的使用详解的文章就介绍到这了,更多相关Python Seaborn内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。