Seaborn库绘制单变量分布和双变量分布

Matplotlib虽然已经是比较优秀的绘图库了,但是它有个今人头疼的问题,那就是API使用过于复杂,它里面有上千个函数和参数,属于典型的那种可以用它做任何事,却无从下手。

Seaborn基于 Matplotlib核心库进行了更高级的API封装,可以轻松地画出更漂亮的图形,而Seaborn的漂亮主要体现在配色更加舒服,以及图形元素的样式更加细腻。

不过,使用Seaborn绘制图表之前,需要安装和导入绘图的接口,具体代码如下:

#安装 pip3installseaborn
#导入 importseabornassns

Seaborn库的可视化数据分布

当处理一组数据时,通常先要做的就是了解变量是如何分布的。

对于单变量的数据来说采用直方图或核密度曲线是个不错的选择,对于双变量来说,可采用多面板图形展现,比如散点图、二维直方图、核密度估计图形等。

针对这种情况,Seaborn库提供了对单变量和双变量分布的绘制函数,如displot()函数、jointplot()函数,下面来介绍这些函数的使用。

绘制单变量分布

可以采用最简单的直方图描述单变量的分布情况。Seaborn中提供了distplot()函数,它默认绘制的是一个带有核密度估计曲线的直方图。distplot()函数的语法格式如下。

seaborn.distplot(a,bins=None,hist=True,kde=True,rug=False,fit=None,color=None)

上述函数中常用参数的含义如下:

(1)a:表示要观察的数据,可以是Series、一维数组或列表。

(2)bins:用于控制条形的数量。

(3)hist:接收布尔类型,表示是否绘制(标注)直方图。

(4)kde:接收布尔类型,表示是否绘制高斯核密度估计曲线。

(5)rug:接收布尔类型,表示是否在支持的轴方向上绘制rugplot。

通过distplot())函数绘制直方图的示例如下。

importnumpyasnpsns.set()np.random.seed(0)#确定随机数生成器的种子,如果不使用每次生成图形不一样arr=np.random.randn(100)#生成随机数组
ax=sns.distplot(arr,bins=10,hist=True,kde=True,rug=True)#绘制直方图

上述示例中,首先导入了用于生成数组的numpy库,然后使用seaborn调用set()函数获取默认绘图,并且调用random模块的seed函数确定随机数生成器的种子,保证每次产生的随机数是一样的,接着调用randn()函数生成包含100个随机数的数组,最后调用distplot()函数绘制直方图。

运行结果如下图所示。

上图中看出:

直方图共有10个条柱,每个条柱的颜色为蓝色,并且有核密度估计曲线。

根据条柱的高度可知,位于-1-1区间的随机数值偏多,小于-2的随机数值偏少。

通常,采用直方图可以比较直观地展现样本数据的分布情况,不过,直方图存在一些问题,它会因为条柱数量的不同导致直方图的效果有很大的差异。为了解决这个问题,可以绘制核密度估计曲线进行展现。

核密度估计是在概率论中用来估计未知的密度函数,属于非参数检验方法之一,可以比较直观地看出数据样本本身的分布特征。

通过distplot()函数绘制核密度估计曲线的示例如下。

#创建包含500个位于[0,100]之间整数的随机数组array_random=np.random.randint(0,100,500)#绘制核密度估计曲线sns.distplot(array_random,hist=False,rug=True)

上述示例中,首先通过random.randint()函数返回一个最小值不低于0、最大值低于100的500个随机整数数组然后调用displot()函数绘制核密度估计曲线。 运行结果如图所示。

从上图中看出,图表中有一条核密度估计曲线,并且在x轴的上方生成了观测数值的小细条。

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/367039.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
黑马程序员黑马程序员订阅用户
上一篇 2023年8月29日 16:08
下一篇 2023年8月29日 16:17

相关推荐

  • 网站分析首要目标提升线上客户的用户体验

    网站分析的首要目标是提升线上客户的用户体验。网站分析不是提供报表的一种技术,而是优化网站的一个有效的流程。下述的框架有助于在公司建立数据驱动的文化,去监测客户与网站的交互,细分客户群体,了解每个不同…

    2022年5月24日 SEO操作
    0156
  • 我来教你seo优化中数据对提升效果来说是不可缺失。

    seo优化中数据对提升效果来说是不可缺失,也是seoer必须去分析的内容 ,可以说通过数据的分析可以让seoer清楚地知道自己网站现在存在着哪些问题,有哪些做得好的地方,有哪些可以提升的地方,这些地方的提升空间是…

    2023年3月11日
    00
  • 分享如何通过数据分析来提升网站排名。

    seo数据分析可以通过优质的内容来吸引用户,增加用户的停留时间,方便搜索引擎对内容页面友好的识别,优化好网站的代码,结合用户的点击行为,让用户体验来决定网站的好坏,将话语权交给用户来回答。 对于移动互联…

    2023年6月20日
    00
  • 我来分享grafana设置变量。

    Grafana是一款开源的数据可视化工具,可以用于监控和分析各种数据源。在Grafana中,您可以使用变量来动态地更改查询、面板和仪表板的设置。您可以在Dashboard右上角的齿轮/Dashboard Setting中配置变量 。 Zabbix 5…

    2024年7月4日
    00
  • 小编分享直通车怎么删数据。

    2、选择宝贝页面在“宝贝推广”页面,您可以勾选宝贝状态栏前的小方框点击“暂停推广”、“参与推广”或“删除”按钮,或者直接找到对应的宝贝操作栏点击“删除”按钮。对于淘宝商家来说,淘宝直通车是非常不错的推广方式,它…

    2023年10月28日
    04
  • 小编教你每天检查seo数据性能重要吗。

    通过这种方式,您可以了解您所做的seo,并了解需要优化的内容以及需要纠正的内容。 SEO监控的重要性当然是测试SEO的有效性。它不仅报告了SEO对公司高层管理人员和其他部门的网站流量和利润的贡献,也使SEO团队了解…

    2023年6月9日
    00
  • seo数据报告优化建议,对数据必须要重视

    seo数据报告优化建议可能很多朋友都有一定的了解,互联网的时代也是一个大数据时代,谁掌握了大数据,谁就获得先机,如果你有兴趣,那就随小编了解更多seo数据报告优化建议的资讯吧。 seo数据报告优化建议 seo数据…

    2022年5月23日
    0271
  • 我来分享网络推广时一定要注意这些问题。

    网络推广时一定要注意这些问题! 网络推广就是把企业产品或服务的核心内容,建立成网站平台或者推广界面等形式,再把这些需推广的网站建设的界面通过各种的渠道展示给网民的一种推广方式。网络推广有成本低、效率高…

    2022年11月14日
    02

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息