【Python百日进阶-数据分析】Day228 - plotly的图表的变换

news2024/9/25 23:23:50

文章目录

  • 一、过滤
  • 二、分组
  • 三、聚合
  • 四、多重转换
    • 4.1 Filter and Group By
    • 4.2 Filter and Aggregate
    • 4.3 所有变换
    • 4.4 Dash中的应用

一、过滤

如何通过 Plotly 在 Python 中使用过滤器。
注意 transforms在 v5 中已弃用,plotly将在未来版本中删除

import plotly.io as pio

subject = ['Moe','Larry','Curly','Moe','Larry','Curly','Moe','Larry','Curly','Moe','Larry','Curly']
score = [1,6,2,8,2,9,4,5,1,5,2,8]

data = [dict(
  type = 'scatter',
  x = subject,
  y = score,
  mode = 'markers',
  transforms = [dict(
    type = 'filter',
    target = 'y',
    operation = '>',
    value = 4
  )]
)]

layout = dict(
    title = 'Scores > 4'
)

fig_dict = dict(data=data, layout=layout)

pio.show(fig_dict, validate=False)

在这里插入图片描述

二、分组

如何在 Python 中通过 Plotly 使用 group by。

注意 transforms在 v5 中已弃用,plotly并将在未来版本中删除。

import plotly.io as pio

subject = ['Moe','Larry','Curly','Moe','Larry','Curly','Moe','Larry','Curly','Moe','Larry','Curly']
score = [1,6,2,8,2,9,4,5,1,5,2,8]

data = [dict(
  type = 'scatter',
  x = subject,
  y = score,
  mode = 'markers',
  transforms = [dict(
    type = 'groupby',
    groups = subject,
    styles = [
        dict(target = 'Moe', value = dict(marker = dict(color = 'blue'))),
        dict(target = 'Larry', value = dict(marker = dict(color = 'red'))),
        dict(target = 'Curly', value = dict(marker = dict(color = 'black')))
    ]
  )]
)]

fig_dict = dict(data=data)
pio.show(fig_dict, validate=False)

在这里插入图片描述

三、聚合

如何在 Python 中通过 Plotly 使用聚合。
注意 transforms在 v5 中已弃用,plotly并将在未来版本中删除。
聚合是一种可以应用于给定表达式中的值的转换类型。可用的聚合有:

功能描述
count返回每个组的项目数量。
sum返回所有数值的总和。
avg返回所有数值的平均值。
median返回所有数值的中位数。
mode返回所有数值的模式。
rms返回所有数值的 rms。
stddev返回所有数值的标准差。
min返回每个组的最小数值。
max返回每个组的最大数值。
first返回每个组的第一个数值。
last返回每个组的最后一个数值。
import plotly.io as pio

subject = ['Moe','Larry','Curly','Moe','Larry','Curly','Moe','Larry','Curly','Moe','Larry','Curly']
score = [1,6,2,8,2,9,4,5,1,5,2,8]

data = [dict(
  type = 'scatter',
  x = subject,
  y = score,
  mode = 'markers',
  transforms = [dict(
    type = 'aggregate',
    groups = subject,
    aggregations = [dict(
        target = 'y', func = 'sum', enabled = True),
    ]
  )]
)]

fig_dict = dict(data=data)

pio.show(fig_dict, validate=False)

在这里插入图片描述

四、多重转换

如何在 Python 中通过 Plotly 使用多个转换(过滤、分组和聚合)。

注意 transforms在 v5 中已弃用,plotly并将在未来版本中删除。

4.1 Filter and Group By

import plotly.io as pio

import pandas as pd
# "https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv"
df = pd.read_csv("f:/gapminderDataFiveYear.csv")
print(df)
'''
          country  year         pop continent  lifeExp   gdpPercap
0     Afghanistan  1952   8425333.0      Asia   28.801  779.445314
1     Afghanistan  1957   9240934.0      Asia   30.332  820.853030
2     Afghanistan  1962  10267083.0      Asia   31.997  853.100710
3     Afghanistan  1967  11537966.0      Asia   34.020  836.197138
4     Afghanistan  1972  13079460.0      Asia   36.088  739.981106
...           ...   ...         ...       ...      ...         ...
1699     Zimbabwe  1987   9216418.0    Africa   62.351  706.157306
1700     Zimbabwe  1992  10704340.0    Africa   60.377  693.420786
1701     Zimbabwe  1997  11404948.0    Africa   46.809  792.449960
1702     Zimbabwe  2002  11926563.0    Africa   39.989  672.038623
1703     Zimbabwe  2007  12311143.0    Africa   43.487  469.709298

[1704 rows x 6 columns]
'''

colors = ['blue', 'orange', 'green', 'red', 'purple']

opt = []
opts = []
for i in range(0, len(colors)):
    opt = dict(
        target = df['continent'][[i]].unique(), value = dict(marker = dict(color = colors[i]))
    )
    opts.append(opt)

data = [dict(
  type = 'scatter',
  mode = 'markers',
  x = df['lifeExp'],
  y = df['gdpPercap'],
  text = df['continent'],
  hoverinfo = 'text',
  opacity = 0.8,
  marker = dict(
      size = df['pop'],
      sizemode = 'area',
      sizeref = 200000
  ),
  transforms = [
      dict(
        type = 'filter',
        target = df['year'],
        orientation = '=',
        value = 2007
      ),
      dict(
        type = 'groupby',
        groups = df['continent'],
        styles = opts
    )]
)]

layout = dict(
    yaxis = dict(
        type = 'log'
    )
)

fig_dict = dict(data=data, layout=layout)
pio.show(fig_dict, validate=False)

在这里插入图片描述

4.2 Filter and Aggregate

import plotly.io as pio
import pandas as pd
# "https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv"
df = pd.read_csv("f:/gapminderDataFiveYear.csv")
print(df)
'''
          country  year         pop continent  lifeExp   gdpPercap
0     Afghanistan  1952   8425333.0      Asia   28.801  779.445314
1     Afghanistan  1957   9240934.0      Asia   30.332  820.853030
2     Afghanistan  1962  10267083.0      Asia   31.997  853.100710
3     Afghanistan  1967  11537966.0      Asia   34.020  836.197138
4     Afghanistan  1972  13079460.0      Asia   36.088  739.981106
...           ...   ...         ...       ...      ...         ...
1699     Zimbabwe  1987   9216418.0    Africa   62.351  706.157306
1700     Zimbabwe  1992  10704340.0    Africa   60.377  693.420786
1701     Zimbabwe  1997  11404948.0    Africa   46.809  792.449960
1702     Zimbabwe  2002  11926563.0    Africa   39.989  672.038623
1703     Zimbabwe  2007  12311143.0    Africa   43.487  469.709298

[1704 rows x 6 columns]
'''

data = [dict(
  type = 'scatter',
  mode = 'markers',
  x = df['lifeExp'],
  y = df['gdpPercap'],
  text = df['continent'],
  hoverinfo = 'text',
  opacity = 0.8,
  marker = dict(
      size = df['pop'],
      sizemode = 'area',
      sizeref = 200000
  ),
  transforms = [
      dict(
        type = 'filter',
        target = df['year'],
        orientation = '=',
        value = 2007
      ),
      dict(
        type = 'aggregate',
        groups = df['continent'],
        aggregations = [
            dict(target = 'x', func = 'avg'),
            dict(target = 'y', func = 'avg'),
            dict(target = 'marker.size', func = 'sum')
        ]
      )]
)]

layout = dict(
    yaxis = dict(
        type = 'log'
    )
)


fig_dict = dict(data=data, layout=layout)

pio.show(fig_dict, validate=False)

在这里插入图片描述

4.3 所有变换

import plotly.io as pio
import pandas as pd
# "https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv"
df = pd.read_csv("f:/gapminderDataFiveYear.csv")
print(df)
'''
          country  year         pop continent  lifeExp   gdpPercap
0     Afghanistan  1952   8425333.0      Asia   28.801  779.445314
1     Afghanistan  1957   9240934.0      Asia   30.332  820.853030
2     Afghanistan  1962  10267083.0      Asia   31.997  853.100710
3     Afghanistan  1967  11537966.0      Asia   34.020  836.197138
4     Afghanistan  1972  13079460.0      Asia   36.088  739.981106
...           ...   ...         ...       ...      ...         ...
1699     Zimbabwe  1987   9216418.0    Africa   62.351  706.157306
1700     Zimbabwe  1992  10704340.0    Africa   60.377  693.420786
1701     Zimbabwe  1997  11404948.0    Africa   46.809  792.449960
1702     Zimbabwe  2002  11926563.0    Africa   39.989  672.038623
1703     Zimbabwe  2007  12311143.0    Africa   43.487  469.709298

[1704 rows x 6 columns]
'''

colors = ['blue', 'orange', 'green', 'red', 'purple']

opt = []
opts = []
for i in range(0, len(colors)):
    opt = dict(
        target = df['continent'][[i]].unique(), value = dict(marker = dict(color = colors[i]))
    )
    opts.append(opt)

data = [dict(
  type = 'scatter',
  mode = 'markers',
  x = df['lifeExp'],
  y = df['gdpPercap'],
  text = df['continent'],
  hoverinfo = 'text',
  opacity = 0.8,
  marker = dict(
      size = df['pop'],
      sizemode = 'area',
      sizeref = 200000
  ),
  transforms = [
      dict(
        type = 'filter',
        target = df['year'],
        orientation = '=',
        value = 2007
      ),
      dict(
        type = 'groupby',
        groups = df['continent'],
        styles = opts
      ),
      dict(
        type = 'aggregate',
        groups = df['continent'],
        aggregations = [
            dict(target = 'x', func = 'avg'),
            dict(target = 'y', func = 'avg'),
            dict(target = 'marker.size', func = 'sum')
        ]
      )]
)]

layout = dict(
    title = '<b>Gapminder</b><br>2007 Average GDP Per Cap & Life Exp. by Continent',
    yaxis = dict(
        type = 'log'
    )
)

fig_dict = dict(data=data, layout=layout)
pio.show(fig_dict, validate=False)

在这里插入图片描述

4.4 Dash中的应用

import plotly.graph_objects as go # or plotly.express as px
fig = go.Figure() # or any Plotly Express function e.g. px.bar(...)
# fig.add_trace( ... )
# fig.update_layout( ... )

import dash
import dash_core_components as dcc
import dash_html_components as html

app = dash.Dash()
app.layout = html.Div([
    dcc.Graph(figure=fig)
])

app.run_server(debug=True, use_reloader=False)  # Turn off reloader if inside Jupyter

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享97个PHP源码,总有一款适合您

PHP源码 分享97个PHP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 97个PHP源码下载链接&#xff1a;https://pan.baidu.com/s/1OUa-rpzDK6CG8oj6BLZSTw?pwdxdt2 提取码&#xff…

上传ipa到appstore的步骤说明

上传ipa到appstore&#xff0c;首先你要有苹果开发者账号&#xff0c;一定要使用你自己的苹果开发者账号的证书打包&#xff0c;才能将ipa上传到你自己的苹果账号&#xff0c;才能提交到app store里。假如你还没有苹果开发者账号&#xff0c;或者你有证书但不是你自己账号生成的…

ES6ES6

ES8-ES8 新特性 4.1.async 和 await async和await 两种语法结合可以让异步代码像同步代码一样 4.1.1.async函数 async函数的返回值为 promise 对象&#xff0c; 2.promise 对象的结果由 asynt函数执行的返回值决定 4.1.2await表达式awaity必须写在 async 函数中 2.await 右侧…

Rockchip开发系列 - 3.2.引脚配置默认上拉下拉

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 返回总目录:Rockchip开发系列 - 总目录 开发过程中发现rk3568-linux.dtsi中耳机监测应急一直是处于低电平状态: 这个gpio表格也说…

【MyBatis】| 在WEB中应⽤MyBatis(使⽤MVC架构模式)

目录 一&#xff1a;在WEB中应⽤MyBatis&#xff08;使⽤MVC架构模式&#xff09; 1. 前期准备 2. 核心代码实现 3. 事务控制 4. 三大对象的作用域 一&#xff1a;在WEB中应⽤MyBatis&#xff08;使⽤MVC架构模式&#xff09; 目标&#xff1a; ①掌握mybatis在web应⽤中怎…

【闪电侠学netty】第9章 实现客户端登录

【Netty】读书笔记 - 跟闪电侠学 1. 内容概要 1.1 总结 1.1.1 逻辑处理器 ChannelHandler&#xff08;详见 第11章 Pipeline与ChannelHandler&#xff09; 1.1.2 编程小技巧 public class PacketCodeC {...public static final PacketCodeC INSTANCE new PacketCodeC();.…

spring学习-第一讲-beanFactory与ApplicationContext

BeanFactory与ApplicationContext区别 创建一个springboot项目&#xff0c;对这个函数的main函数来进行执行。 ConfigurableApplicationContext context SpringApplication.run(BeanFactoryApplicationContextStudyApplication.class, args); 很明显&#xff0c;Configurabl…

“互联网+”六年,云徙科技打造数字化经营增长“头牌”

2022年底的全面开放结束了三年疫情&#xff0c;三年来以消费零售为代表的商业领域发生了深刻变局。根据2022年8月的第50次中国互联网络发展状况统计报告&#xff0c;互联网推动网民消费模式变迁&#xff1a;在消费场景方面&#xff0c;从线上消费逐步转变为线上线下融合消费&am…

软件安装教程-Vivado2018.3/ISE14.7/Modelsim10.5/Keil5/AD18/Cadence17.2/CAD2016

硬件工程师软件安装教程 1.Vivado2018.3安装教程 本文的主要内容是介绍 Vivado 2018.3 版本(提取码&#xff1a;ebdx)的安装步骤及其 license(提取码: 6xkh) 的获取与加载。 本文学习自《【ALINX】FPGA ZYNQ视频教程——AX7010/AX7020教程——基础部分》 首先下载安装包&…

【Unity3D】基于模板测试和顶点膨胀的描边方法

1 前言 选中物体描边特效 中介绍了基于模板纹理模糊膨胀的描边方法&#xff0c;该方法实现了软描边&#xff0c;效果较好&#xff0c;但是为了得到模糊纹理&#xff0c;对屏幕像素进行了多次二次渲染&#xff0c;效率欠佳。本文将介绍另一种描边方法&#xff1a;基于模板测试和…

简单使用tomcat查看版本信息等·

Tomcat 是什么 &#xff1f;1.Apache Tomcat 是由 Apache Software Foundation&#xff08;ASF&#xff09;开发的一个开源 Java WEB 应用服务器。2.由于 Tomcat 是由 Java 语言实现的&#xff0c;因此需要运行在 Java 虚拟机上&#xff0c;所以使用前要先安装 JDK&#xff0c;…

JNPF Java3.4.5 .NET6 3.4.5 框架源码 JeeSite快速开发平台

JeeSite JeeSite 快速开发平台的主要目的是能够让初级的研发人员快速的开发出复杂的业务功能&#xff0c;中高级人员有时间做一些更有用的事情。让开发者注重专注业务&#xff0c;其余有平台来封装技术细节&#xff0c;降低技术难度&#xff0c;从而节省人力成本&#xff0c;缩…

电商控价,为什么要找控价公司

刚刚做控价的时候&#xff0c;相信我们心中都有一个疑问&#xff1a;控价嘛&#xff0c;很简单&#xff0c;把标准价格发给低价店铺&#xff0c;让他调价不就行了&#xff1f;不配合&#xff0c;我就投诉&#xff0c;要么我就断货&#xff0c;自己产品自己说了还不算吗&#xf…

《大话数据结构》读书笔记---第一章 数据结构绪论

数据结构&#xff1a;是相互之间存在一种或多种特定关系的数据元素的集合。数据结构是一门研究非数值计算的程序设计问题中的操作对象&#xff0c;以及它们之间关系和操作等相关问题的学科。程序设计数据结构算法数据&#xff1a;是描述客观事物的符号&#xff0c;是计算机中可…

C++复数类——运算符重载和类的传递

复数&#xff1a;我们把形如abi&#xff08;a,b均为实数&#xff09;的数称为复数&#xff0c;其中a称为实部&#xff0c;b称为虚部&#xff0c;i称为虚数单位。当虚部等于零时&#xff0c;这个复数可以视为实数&#xff1b;当z的虚部不等于零时&#xff0c;实部等于零时&#…

【Kotlin】类的继承 ② ( 使用 is 运算符进行类型检测 | 使用 as 运算符进行类型转换 | 智能类型转换 | Any 超类 )

文章目录一、使用 is 运算符进行类型检测二、使用 as 运算符进行类型转换 ( 智能类型转换 )三、Any 超类一、使用 is 运算符进行类型检测 在 Kotlin 中 , 如果不确定一个 实例对象的类型 , 可以 使用 is 运算符进行判定 , 使用方法 实例对象 is 判定类型上述用法可以判定 实例…

Windows11快速入门

1、如何快速上手Win11 Win11官网&#xff1a;https://www.microsoft.com/zh-cn/windows/windows-11?r1 Windows 帮助和学习&#xff1a;https://support.microsoft.com/zh-cn/windows?uizh-CN&rszh-CN&adCN) 2、Win11常用快捷键 2.1、文本编辑快捷键 功能描述快捷键…

【JavaGuide面试总结】MySQL篇·下

【JavaGuide面试总结】MySQL篇下1.介绍一下索引吧2.索引的优缺点3.讲一下索引的底层数据结构Hash 表B 树& B树1.介绍一下索引吧 索引是一种用于快速查询和检索数据的数据结构&#xff0c;其本质可以看成是一种排序好的数据结构。 索引的作用就相当于书的目录。打个比方: …

SpringBoot集成Quartz实现定时任务的动态创建、启动、暂停、恢复、删除

看了好多文章&#xff0c;都只讲了基础的demo用法&#xff0c;也就是简单的创建运行定时任务&#xff0c;对定时任务的管理却很少。 我这里从0开始搭建一个简单的demo&#xff0c;包括定时任务的各种操作&#xff0c;以及API的一些用法&#xff0c;可以实现大多场景的需求。如…

A-Star算法探索和实现(四)

本篇摘要上一篇我们针对障碍物的“死胡同”问题进行了探索&#xff0c;本篇则针对障碍物生成在网格对角顶点处是否有意义以及路径周围存在障碍物时按照对角线移动是否合理两个问题进行探讨&#xff0c;这两个问题主要在于移动规则的限定&#xff0c;主要分为以下两种情况&#…