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

四、实例

饼图是一种圆形统计图表,它被划分为扇区来说明数字比例。
如果您正在寻找多级分层饼状图表,请转到 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)

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
python数据分析:基于plotly的动态可视化绘.pdf》是一本关于使用Python数据分析的书籍,主要介绍了如何利用plotly行动态可视化绘数据分析是通过收集、清洗、加工、分析和呈现大量数据来揭示其中潜在规律和洞察的过程。而可视化则是将数据以表等可视化方式展示,帮助我们更直观地理解和解读数据。plotlyPython中一款功能强大的可视化库,它可以生成各种交互式表,支持动态可视化和在线展示。 《python数据分析:基于plotly的动态可视化绘.pdf》通过实例演示了如何使用plotly数据分析中常用的可视化操作,包括折线、柱状、散点、地理等。使用plotly库可以轻松创建动态可视化表,通过调整参数和设置动画效果,可以让表更生动、更具吸引力。 动态可视化是一种通过动态变化的表来展示数据的方法。它可以帮助我们更好地理解数据的变化趋势和规律,发现数据中隐藏的特征和模式。在数据分析中,动态可视化常用于时间序列数据、实时数据等领域,能够直观地展示数据的变化过程和动态趋势。 综上所述,《python数据分析:基于plotly的动态可视化绘.pdf》是一本介绍如何使用plotly行动态可视化绘的书籍,通过实例演示了使用plotly库创建各种动态可视化表的方法和技巧,对于对数据分析和可视化有兴趣的人来说,是一本不可多得的学习资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岳涛@心馨电脑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值