Python 学习记录 (4)

news/2024/11/14 11:57:29/文章来源:https://www.cnblogs.com/hai-zei/p/18532126

Plotly常见可视化方案:以鸢尾花数据为例

简单介绍:

  1. Ploty库也有大量统计可视化方案,并且这些可视化方案具有交互化属性。
  2. 主要对鸢尾花数据进行处理与可视化。
  3. 所展示的结果为交互界面的截图情况,这里不能进行交互。

使用Plotly绘制散点图与箱型图,分类展示“花萼宽度”

说明:

  • 类似'species'这个分类标签,使用'Category'分析原始特征数据,如花萼宽带
import seaborn as sns
import pandas as pd
import plotly.express as pxdf=sns.load_dataset("iris")
df['area']=df['sepal_length']*df['petal_width']
#计算”面积”,其中‘area'为新产生的一列
df['Category']=pd.qcut(df['area'],5,labels=['A','B','C','D','E'])
#pandas.qcut()方法根据’area'大小将数据大致分成5分=份且编号。list_stats=['min','max','mean','median','std']
stats_by_area=df.groupby('Category')['area'].agg(list_stats)
#这里以Category为参照进行分组,之后对area进行计算统计量
stats_by_area['Range']=stats_by_area['max']-stats_by_area['min']
stats_by_area['Nunber']=df['Category'].value_counts()
#通过个方法相应的数值#---画出箱型图----
fig = px.box(df,x = 'sepal_length',y = 'Category',color = 'Category',points='all',#color指定以什么来区分颜色,points来指明是否画点template="plotly_white",width=600,height=300,category_orders={"Category":["A","B","C","D","E"]},color_discrete_sequence=px.colors.qualitative.Pastel1,#指定颜色映射的调色板labels={"sepal_length":"Sepal Length (cm)"})
fig.show()#---画出散点图-----
fig=px.scatter(df,x='sepal_length',y='petal_length',color='Category',marginal_x='box', marginal_y='box',#分别在x,y轴的边缘加上箱型图template="plotly_white",width=600,height=500,color_discrete_sequence=px.colors.qualitative.Pastel1,labels={"sepal_length":"Sepal Length (cm)","petal_length":"petal Length (cm)"})
fig.show()

结果:
imageimage


以鸢尾花种类,面积,长度范围,长宽比值为四个维度,并用太阳爆炸,冰柱图,矩形树状图可视化钻取

说明:

  1. 因原始数据没有相关的维度,故需要添加相关的维度
  2. 确定一下钻取顺序情况
  3. 对其进行可视化

import pandas as pd
import seaborn as sns
import plotly.express as px
#---传入数据并对数据进行加工----
df=sns.load_dataset("iris")
df['area']=df['sepal_length']*df['sepal_width']
df['Category']=pd.qcut(df['area'],5,labels=['A','B','C','D','E'])
#上面得到面积,这里根据面积来将数据划分成五等分labels=["{0}~{1} cm".format(i,i+1) for i in range(4,8)]
#这里将长度也分成四分,为4~5,5~6,下面的right表明右开。
df["sepal_length_bins"]=pd.cut(df.sepal_length,range(4,9),right=False,labels=labels)df['bi']=df['sepal_length']/df['sepal_width']
#以长宽作为依据划分label为每一区域的标签
df['Category1']=pd.qcut(df['bi'],4,labels=['ⅰ','ⅱ','ⅲ','ⅳ'])dims=['species','Category','Category1','sepal_length_bins']#钻取顺序,为日冕图做准备
#下面以sepal_length为数值来源得到概率
prob_matrix_by_4=df.groupby(dims)['sepal_length'].apply(lambda x:x.count()/len(df))
prob_matrix_by_4=prob_matrix_by_4.reset_index()
prob_matrix_by_4.rename(columns={'sepal_length':'Ratio'},inplace=True)
#画出日冕图像
fig=px.sunburst(prob_matrix_by_4,path=dims,values='Ratio',width=800,height=800)
fig.show()
#通过pd.crosstab方法进行交叉计数,这里列最好为一层,方便后面转化长格式后对count的计数
count_matrix=pd.crosstab(index=[df.species,df.Category,df.Category1],columns=df.sepal_length_bins,values=df.petal_length,aggfunc='count')
count_matrix=count_matrix.stack().reset_index()
count_matrix.rename(columns={0:'count'},inplace=True)
count_matrix=count_matrix[count_matrix['count']!=0]
#只保留不为0的,冰柱图面对0会报错。
fig=px.icicle(count_matrix,path=[px.Constant("all"),#在最左侧加入all.'species','Category','Category1','sepal_length_bins'],values='count',color_continuous_scale='Blues',color='count',width=800,height=800)
fig.show()#---画出矩形树状图----
fig=px.treemap(count_matrix,path=[px.Constant("all"),'species','Category','Category1','sepal_length_bins'],values='count',color_continuous_scale='Blues',color='count',width=800,height=800)
fig.show()

结果:
日冕图:
image
冰柱图:
image
矩形树状图:
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/831838.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聚丙烯的节奏

晚上7420附近企稳做多 损7400下方 这两天目标7530以上

低空载功耗,高能源利用率 BDA5-20W BOSHIDA DCDC

低空载功耗,高能源利用率 BDA5-20W BOSHIDA DCDC BDA5-20W系列产品具有以下特点:宽输入电压范围(4:1),可以适应多种输入电压条件;高效率,能够达到88%以上,节能环保;空载功耗低,可以节省能源;隔离电压为500VDC,能够提供良好的电气隔离性能;具有输入欠压保护、输出过…

LCEL与AgentExecutor的局限性分析

在大语言模型(LLM)应用开发领域,LangChain表达式语言(LCEL)和AgentExecutor一直是开发者的得力助手。然而,随着应用场景的复杂化,这些工具的局限性也日益凸显。本文将深入探讨LCEL和AgentExecutor的不足,并引入一个新的解决方案。 LCEL链表达式的局限性 LangChain表达式语言(LC…

SSD201/202D的SPI通讯该怎么操作,触觉智能带来保姆级攻略

本文介绍SigmaStar SSD201/SSD202D中SPI通讯的测试方法,SPI是一种常见的串行通信协议,它被广泛用于微控制器与各种外设之间的数据传输。使用触觉智能Purple Pi R1双网口开发板演示。本文介绍SigmaStarSSD201/SSD202D中SPI通讯的测试方法,SPI全称是Serial Peripheral Interfa…

多线程锁的升级原理是什么

锁的级别:无锁 => 偏向锁 => 轻量级锁 => 重量级锁 无锁:没有对资源进行锁定,所有线程都可以访问,但是只有一个线程能成功修改资源,其他的线程会不断尝试,直至修改成功。 偏向锁:偏向锁是指当一个线程访问同步块并获取锁时,会在对象头和栈帧中的锁记录里存储…

Eplan2022卡顿问题解决

EPLAN2022卡顿崩溃怎么解决第一步:可以检查下用户设置。打开菜单 "选项 → 设置:用户 → 翻译 → 字典": 不勾选"自动完成"和"自动更正"。在选项设置框中输入"自动",快速找到用户设置,取消勾选,如下图。 第二步:可以检查下电脑语…

Linux中文件系统层次结构简述

在Linux操作系统中,并没有像Windows那样的“盘符”概念。相反,Linux使用一个统一的文件系统层次结构,所有的文件和目录都挂载在一个单一的根目录 / 下。这种设计使得文件系统的管理更加灵活和一致。 文件系统层次结构 在Linux中,文件系统通常按照以下层次结构组织:/(根目…

创建线程有哪几种方式

1. 继承 ​​Thread​​ 类 优点:简单直观,适合初学者。 直接继承 ​​Thread​​ 类,可以方便地访问和使用 ​​Thread​​ 类的方法。缺点:Java 不支持多继承,因此如果你的类已经继承了其他类,则不能继承 ​​Thread​​ 类。 仅适用于简单的线程任务。示例:class MyT…

[豪の学习笔记] CI/CD相关 - Docker

Docker常见命令,命名别名,数据卷挂载,本地目录挂载,自定义镜像,容器网络互联一、docker常见命令单独下载镜像文件 docker pull 查看本地镜像文件 docker images 删除本地镜像文件 docker rmi 基于dockerfile构建自定义镜像 docker build 将打包好的镜像保存在本地 docker …

excel中查找亏损第一大第二大第三大的商品的亏损金额;涨出第一大,第二大,第三大的金额;以及查找对应数值的商品的名称,

k2 里的公式 =LARGE(IF(B:B="品类1",E:E),1) lL 里的公式 =LARGE(IF(B:B="品类1",E:E),2) M2里额公式 =LARGE(IF(B:B="品类1",E:E),3) N2里的公式=MIN(IF(B:B="品类1",E:E),1) O2里的公式=SMALL(IF(B:B="品类1",E:E),2) P2里…

线程池都有哪些状态

线程池有五种典型状态: 1.RUNNING(运行状态):在这个状态下,线程池可以接收新的任务提交,并且能够处理已添加到任务队列中的任务。这是线程池的初始状态,也是最活跃的状态。这是最正常的状态 2.SHUTDOWN(关闭状态)当调用了线程池的`shutdown()`方法后,线程池进入此状…