【Python百日进阶-数据分析】Day133 - plotly饼图:px.pie()实例

news2024/11/25 16:32:57

文章目录

  • 四、实例
    • 4.1 带有 plotly express 的饼图
      • 4.1.1 欧洲大陆的人口
      • 4.1.2 带有重复标签的饼图
      • 4.1.3 使用 px.pie 设置饼图扇区的颜色
      • 4.1.4 对离散颜色使用显式映射
      • 4.1.5 自定义使用 px.pie 创建的饼图
      • 4.1.13 Dash 中的饼图

四、实例

饼图是一种圆形统计图表,它被划分为扇区来说明数字比例。
如果您正在寻找多级分层饼状图表,请转到 Sunburst 教程。

4.1 带有 plotly express 的饼图

Plotly Express是 Plotly 的易于使用的高级界面,它对各种类型的数据进行操作并生成易于样式化的图形。
在px.pie中,由饼图的扇区可视化的数据设置在 中values。扇区标签设置在names.

4.1.1 欧洲大陆的人口

import plotly.express as px
df = px.data.gapminder().query("year == 2007").query("continent == 'Europe'")
df.loc[df['pop'] < 2.e6, 'country'] = 'Other countries' # 只代表大国
fig = px.pie(df, values='pop', names='country', title='欧洲大陆的人口')
fig.show()

在这里插入图片描述

4.1.2 带有重复标签的饼图

具有相同值的数据帧的行在names同一扇区中组合在一起。

import plotly.express as px
# 这个数据框有244行,但是“day”有4个不同的值`
df = px.data.tips()
print(df)
'''
     total_bill   tip     sex smoker   day    time  size
0         16.99  1.01  Female     No   Sun  Dinner     2
1         10.34  1.66    Male     No   Sun  Dinner     3
2         21.01  3.50    Male     No   Sun  Dinner     3
3         23.68  3.31    Male     No   Sun  Dinner     2
4         24.59  3.61  Female     No   Sun  Dinner     4
..          ...   ...     ...    ...   ...     ...   ...
239       29.03  5.92    Male     No   Sat  Dinner     3
240       27.18  2.00  Female    Yes   Sat  Dinner     2
241       22.67  2.00    Male    Yes   Sat  Dinner     2
242       17.82  1.75    Male     No   Sat  Dinner     2
243       18.78  3.00  Female     No  Thur  Dinner     2

[244 rows x 7 columns]
'''
fig = px.pie(df, values='tip', names='day')
fig.show()

在这里插入图片描述

4.1.3 使用 px.pie 设置饼图扇区的颜色

import plotly.express as px
df = px.data.tips()
'''
     total_bill   tip     sex smoker   day    time  size
0         16.99  1.01  Female     No   Sun  Dinner     2
1         10.34  1.66    Male     No   Sun  Dinner     3
2         21.01  3.50    Male     No   Sun  Dinner     3
3         23.68  3.31    Male     No   Sun  Dinner     2
4         24.59  3.61  Female     No   Sun  Dinner     4
..          ...   ...     ...    ...   ...     ...   ...
239       29.03  5.92    Male     No   Sat  Dinner     3
240       27.18  2.00  Female    Yes   Sat  Dinner     2
241       22.67  2.00    Male    Yes   Sat  Dinner     2
242       17.82  1.75    Male     No   Sat  Dinner     2
243       18.78  3.00  Female     No  Thur  Dinner     2

[244 rows x 7 columns]
'''
fig = px.pie(df, values='tip', names='day', color_discrete_sequence=px.colors.sequential.RdBu)
fig.show()

在这里插入图片描述

4.1.4 对离散颜色使用显式映射

有关离散颜色的更多信息,请参阅专用页面。

import plotly.express as px
df = px.data.tips()
'''
     total_bill   tip     sex smoker   day    time  size
0         16.99  1.01  Female     No   Sun  Dinner     2
1         10.34  1.66    Male     No   Sun  Dinner     3
2         21.01  3.50    Male     No   Sun  Dinner     3
3         23.68  3.31    Male     No   Sun  Dinner     2
4         24.59  3.61  Female     No   Sun  Dinner     4
..          ...   ...     ...    ...   ...     ...   ...
239       29.03  5.92    Male     No   Sat  Dinner     3
240       27.18  2.00  Female    Yes   Sat  Dinner     2
241       22.67  2.00    Male    Yes   Sat  Dinner     2
242       17.82  1.75    Male     No   Sat  Dinner     2
243       18.78  3.00  Female     No  Thur  Dinner     2

[244 rows x 7 columns]
'''
fig = px.pie(df, values='tip', names='day', color='day',
             color_discrete_map={'Thur':'lightcyan',
                                 'Fri':'cyan',
                                 'Sat':'royalblue',
                                 'Sun':'darkblue'})
fig.show()

在这里插入图片描述

4.1.5 自定义使用 px.pie 创建的饼图

在下面的示例中,我们首先创建一个带有 的饼图px,pie,使用它的一些选项,例如hover_data(哪些列应该出现在悬停中)或labels(重命名列名)。为了进一步调整,我们调用fig.update_traces设置图表的其他参数(您也可以fig.update_layout用于更改布局)。

import plotly.express as px
df = px.data.gapminder().query("year == 2007").query("continent == 'Americas'")
print(df)
'''
                  country continent  year  ...     gdpPercap  iso_alpha  iso_num
59              Argentina  Americas  2007  ...  12779.379640        ARG       32
143               Bolivia  Americas  2007  ...   3822.137084        BOL       68
179                Brazil  Americas  2007  ...   9065.800825        BRA       76
251                Canada  Americas  2007  ...  36319.235010        CAN      124
287                 Chile  Americas  2007  ...  13171.638850        CHL      152
311              Colombia  Americas  2007  ...   7006.580419        COL      170
359            Costa Rica  Americas  2007  ...   9645.061420        CRI      188
395                  Cuba  Americas  2007  ...   8948.102923        CUB      192
443    Dominican Republic  Americas  2007  ...   6025.374752        DOM      214
455               Ecuador  Americas  2007  ...   6873.262326        ECU      218
479           El Salvador  Americas  2007  ...   5728.353514        SLV      222
611             Guatemala  Americas  2007  ...   5186.050003        GTM      320
647                 Haiti  Americas  2007  ...   1201.637154        HTI      332
659              Honduras  Americas  2007  ...   3548.330846        HND      340
791               Jamaica  Americas  2007  ...   7320.880262        JAM      388
995                Mexico  Americas  2007  ...  11977.574960        MEX      484
1115            Nicaragua  Americas  2007  ...   2749.320965        NIC      558
1187               Panama  Americas  2007  ...   9809.185636        PAN      591
1199             Paraguay  Americas  2007  ...   4172.838464        PRY      600
1211                 Peru  Americas  2007  ...   7408.905561        PER      604
1259          Puerto Rico  Americas  2007  ...  19328.709010        PRI      630
1559  Trinidad and Tobago  Americas  2007  ...  18008.509240        TTO      780
1619        United States  Americas  2007  ...  42951.653090        USA      840
1631              Uruguay  Americas  2007  ...  10611.462990        URY      858
1643            Venezuela  Americas  2007  ...  11415.805690        VEN      862

[25 rows x 8 columns]
'''
fig = px.pie(df, values='pop', names='country',
             title='美洲大陆的人口',
             hover_data=['lifeExp'], labels={'lifeExp':'预期寿命'})
fig.update_traces(textposition='inside', textinfo='percent+label')
fig.show()

在这里插入图片描述

4.1.13 Dash 中的饼图

Dash是使用 Plotly 图形在 Python 中构建分析应用程序的最佳方式。要运行下面的应用程序,运行pip install dash,单击“下载”以获取代码并运行python app.py。

开始使用官方 Dash 文档,了解如何使用Dash Enterprise轻松设计和部署此类应用程序。

import dash
from dash import html, dcc
from dash.dependencies import Input, Output
import plotly.express as px

# 这个数据框有244行,但是“day”有4个不同的值`
df = px.data.tips()
print(df)
'''
     total_bill   tip     sex smoker   day    time  size
0         16.99  1.01  Female     No   Sun  Dinner     2
1         10.34  1.66    Male     No   Sun  Dinner     3
2         21.01  3.50    Male     No   Sun  Dinner     3
3         23.68  3.31    Male     No   Sun  Dinner     2
4         24.59  3.61  Female     No   Sun  Dinner     4
..          ...   ...     ...    ...   ...     ...   ...
239       29.03  5.92    Male     No   Sat  Dinner     3
240       27.18  2.00  Female    Yes   Sat  Dinner     2
241       22.67  2.00    Male    Yes   Sat  Dinner     2
242       17.82  1.75    Male     No   Sat  Dinner     2
243       18.78  3.00  Female     No  Thur  Dinner     2

[244 rows x 7 columns]
'''

app = dash.Dash(__name__)

app.layout = html.Div([
    html.P("Names:"),
    dcc.Dropdown(
        id='names',
        value='day',
        options=[{'value': x, 'label': x}
                 for x in ['smoker', 'day', 'time', 'sex']],
        clearable=False
    ),
    html.P("Values:"),
    dcc.Dropdown(
        id='values',
        value='total_bill',
        options=[{'value': x, 'label': x}
                 for x in ['total_bill', 'tip', 'size']],
        clearable=False
    ),
    dcc.Graph(id="pie-chart"),
])

@app.callback(
    Output("pie-chart", "figure"),
    [Input("names", "value"),
     Input("values", "value")])
def generate_chart(names, values):
    fig = px.pie(df, values=values, names=names)
    return fig

app.run_server(debug=True)

在这里插入图片描述

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

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

相关文章

微服务框架 SpringCloud微服务架构 服务异步通讯 50 消息可靠性 50.2 消息持久化

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 服务异步通讯 文章目录微服务框架服务异步通讯50 消息可靠性50.2 消息持久化50.2.1 消息持久化50 消息可靠性 50.2 消息持久化 50.2.1 消息…

深入解析CSS (3)Flexbox

Flexbox&#xff0c;全称弹性盒子布局 给元素添加display: flex&#xff0c;该元素变成了一个弹性容器&#xff08;flex container&#xff09;&#xff0c;它的直接子元素变成了弹性子元素&#xff08;flex item&#xff09;。 弹性子元素默认是在同一行按照从左到右的顺序并…

[附源码]计算机毕业设计Python的黄河文化科普网站(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等…

2022年全球IB百强名校出炉,19所香港学校上榜

教育界有句话&#xff1a;“得教育者得天下&#xff0c;得IB者得教育。” 作为目前国际上认可度最高、真正无国界全球通用的、且旨在培养最全面人才的国际课程&#xff0c;IB课程正在为越来越多的学校和家长所青睐。 近日&#xff0c;Best Schools 最新公布了2022年全球最佳IB学…

卷积神经网络-高级篇Advanced-CNN

卷积神经网络-高级篇Advanced-CNN 在基础篇中我们学习了一个简单的CNN 下面介绍其他几个网络结构 GoogLeNet 蓝色为卷积&#xff0c;红色是池化&#xff0c;黄色是softmax输出&#xff0c;绿色是一些拼接层。 在这个大型的网络结构中我们需要做到的是减少代码冗余&#xff0…

为什么Python是2023最值得学的编程语言?

对于那些从来没有学习编程小伙伴&#xff0c;Python 是最好的选择之一&#xff0c; Python 是一种清晰的语言&#xff0c;用缩进来表示程序的嵌套关系可谓是一种创举&#xff0c;把过去软性的编程风格升级为硬性的语法规定。再不需要在不同的风格间选择、再不需要为不同的风格…

阿里工作7年被裁,3个月逆袭字节跳动测试开发,有些心里话想对大家说...

被裁之路 先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入阿里&#xff0c;以“人员优化”的名义无情被裁员&#xff0c;我失去了在阿里5年的工作。虽然有事先通风&#xff0c;但是我没有想到这一天会来的那么快。今天中午收到消息说我们这个组…

网络入门基础

目录 一.预备知识 1.1网络背景 1.2协议 二.网络协议 2.1协议分层 2.2OSI 7层 2.3TCP/IP五层(或四层) 三.网络传输基本流程 3.1局域网通信 3.2 跨网络通信 3.3IP地址与MAC地址 一.预备知识 1.1网络背景 独立模式&#xff1a;计算机之间相互独立 网络互联&#xff1a; 计…

[附源码]计算机毕业设计Python的网上点餐系统(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

[附源码]计算机毕业设计Python的汽车租赁系统(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

为什么要学Python编程 到底Python值不值得学

为什么要学Python编程&#xff1f;到底Python值不值得学​&#xff1f;Python在软件质量控制、提升开发效率、可移植性、组件集成、丰富库支持等各个方面均处于先进地位。同样学习编程语言&#xff0c;当然要选择学习业内目前先进、热门、将来应用广泛、有前途和前景的编程语言…

计算机行业真的这么吃香吗,他的真实薪资情况到底如何呢?

越来越多的人涌入计算机行业&#xff0c;这个行业真的这么吃香吗&#xff0c;他的真实薪资情况到底如何呢&#xff1f; 近些年来&#xff0c;不论是否是计算机专业的学生或者是社会人员&#xff0c;都选择一脚踏入这个行业。它真的这么好吗&#xff1f; 首先从地域而言&#…

LeetCode 1971. 寻找图中是否存在路径

【LetMeFly】1971.寻找图中是否存在路径 力扣题目链接&#xff1a;https://leetcode.cn/problems/find-if-path-exists-in-graph/ 有一个具有 n个顶点的 双向 图&#xff0c;其中每个顶点标记从 0 到 n - 1&#xff08;包含 0 和 n - 1&#xff09;。图中的边用一个二维整数数…

【Acwing寒假2023每日一题】4261. 孤独的照片 - 乘法原理

4261. 孤独的照片 - AcWing题库 这题看数据范围 n ≤ 不可能暴力做 会tle 1、双指针暴力模拟 tle #include <bits/stdc.h> using namespace std;int main() {int n,res0;string s;cin>>n>>s;for(int i0;i<n-2;i){int g0,h0;for(int l3;il<n;l){strin…

网络搭建与应用—Windows10上开启路由转发及添加路由

Windows10上开启路由转发及添加路由 注意&#xff1a;实验环境下主机B两个接口没有网关 操作步骤 一、主机B 开启 win10 转发功能 1、进入CMD 2、执行命令 reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /D 1 /f 3、进入注册表 将 HK…

【HTML】Base64编码

目录 Base64编码表 Base64编码解码 Base64位图片 uni-app图片绝对路径转base64码 微信小程序图片绝对路径转base64码 Base64是常见的传输8Bit字节码的编码方式之一&#xff0c;基于可打印字符来表示二进制数据的方法。一般用于在HTTP协议下传输二进制数据。由于网络传输只…

25岁无经验入行软件测试的感悟,写给还在迷茫中的你

转行软件测试两年了&#xff0c;这两年来&#xff0c;从刚开始对测试认识的朦朦胧胧&#xff0c;现在思路也逐渐清晰了&#xff0c;也明确了自己的发展方向。虽然对那些测试理论和测试工具以及测试技术有了一些加强&#xff0c;但是自我感觉还是不够深入。 我一直希望能真正融…

网络实验②——同Vlan下相互通信

实验要求&#xff1a; 同vlan间可互相通信对交换机配置远程管理&#xff0c;注&#xff1a;新建管理vlan&#xff0c;名称&#xff1a;guanli&#xff0c;ID&#xff1a;110 实验步骤&#xff1a; A交换机配置&#xff1a; enable config t hostname switch-A vlan 10 vla…

中望3D二次开发 控制台命令转PDF

中望3D的外部开发模式命令非常少&#xff0c;没有办法使用远程办法打开文件&#xff0c;将图纸转换为PDF&#xff08;听说以后的版本会有&#xff0c;但是在2022版本上是没有的&#xff09;&#xff1b; ps&#xff1a;远程方式&#xff0c;意思就是远程电脑必须开启中望3D软件…

周志华 机器学习初步 线性模型

周志华 《机器学习初步》 线性模型 还未更新完&#xff0c;会持续更新 文章目录周志华 《机器学习初步》 线性模型一.线性回归线性模型线性模型的特点和重要性线性模型的基本形式参考资料一.线性回归 线性模型 线性模型的特点和重要性 线性模型的重要性 人在考虑问题时&#…