文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python可视化工具Plotly怎么用

2023-06-22 05:09

关注

小编给大家分享一下Python可视化工具Plotly怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一.简介

发展由来:

随着信息技术的发展和硬件设备成本的降低,当今的互联网存在海量的数据,要想快速从这些数据中获取更多有效的信息,数据可视化是重要的一环。对于Python语言来说,比较传统的数据可视化模块是Matplotlib,但它存在不够美观、静态性、不易分享等缺点,限制了Python在数据可视化方面的发展。

为了解决这个问题,新型的动态可视化开源模块Plotly应运而生。由于Plotly具有动态、美观、易用、种类丰富等特性,所以一经问世就受到开发人员的喜爱。

简要说明

Plotly是Python 库中一种互动,开源绘图库,也是基于javascript的绘图库,支持 40 多种独特的图表类型,效果美观,其中涵盖各种统计、财务、地理、科学和三维用例。

有在线和离线模式,易于保存与分享plotly的绘图结果,并且可以与Web无缝集成;

ploty默认的绘图结果,是一个HTML网页文件,通过浏览器可以直接查看;

Python可视化工具Plotly怎么用

二.各图运用

安装:

pip install plotly

下面均在Jupyter Notebook中运行

数据源:

import plotlyimport plotly.express as pximport plotly.graph_objects as goimport plotly.io as pioimport pandas as pdimport numpy as np# plotly内置了数据集,方便大家不受数据分析思路的背景下,练手用df=px.data.gapminder()df.head()

运行结果:

Python可视化工具Plotly怎么用

1.柱状图

# 绘制中国历年人口变化图# df_country=df.query('country=="China"')df_country=df[df['country']=='China'] # 柱状图展示fig=px.bar(df_country,  # 数据源           x='year',  # 横坐标:年份           y='pop',  # 纵坐标:人口           text='pop',  # 说明:人口           color='lifeExp',  # 颜色取值:根据平均寿命的值来取           hover_name='year', #控制点名称:年份          )fig

运行结果:

Python可视化工具Plotly怎么用

# 注释标题fig.update_layout(title_text='中国人口变迁史',                  title_x=.5,                  font=dict(family='simsun',                           size=14,                           color='#1d39c4')                 )# 注释坐标轴fig.update_layout(xaxis_title='年份',                 yaxis_title='人口数量')fig

运行结果:

Python可视化工具Plotly怎么用

#柱形图文字格式fig.update_traces(                 textposition='outside',                 texttemplate='%{text:,.2s}')fig

运行结果:

Python可视化工具Plotly怎么用

#利用customdata增加数据集fig.update_traces(customdata=df[['lifeExp','gdpPercap']])fig.update_traces(hovertemplate='Year: %{x}<br><br> Population: %{y}<br> Life Expectation: %{customdata[0]:,.2f}<br>GDP per capital: %{customdata[1]:,.2f}')# 坐标轴tick设置fig.update_xaxes(tickangle=-45,tickfont=dict(family='arial',size=12))        fig

运行结果:

Python可视化工具Plotly怎么用

# 设置间隙大小及文本大小fig.update_layout(bargap=.4,                 uniformtext_minsize=8,                 uniformtext_mode='show')# 设置注释fig.add_annotation(x='1982',                   y=1000281000,                   text='突破10亿',                  font=dict(color='red'))fig.update_annotations(dict(xref='x',                           yref='y',                           showarrow=True),                      arrowcolor='red',                      arrowhead=4)fig.show()

运行结果:

Python可视化工具Plotly怎么用

2.散点图

df_2007 = df[df["year"] == 2007]df_2007

运行结果:

Python可视化工具Plotly怎么用

# 散点图px.scatter(df_2007,   # 数据集           x="gdpPercap",  # 横坐标:人均GDP           y="lifeExp",  # 纵坐标:平均寿命           color="continent"  # 颜色取值:根据洲的值来取          )

运行结果:

Python可视化工具Plotly怎么用

选择一个区域,能将其放大

Python可视化工具Plotly怎么用

Python可视化工具Plotly怎么用

3.冒泡散点图

# 冒泡散点图px.scatter(df_2007,   # 绘图DataFrame数据集           x="gdpPercap",  # 横坐标           y="lifeExp",  # 纵坐标           color="continent",  # 区分颜色           size="pop",  # 区分圆的大小           size_max=60,  # 散点大小           hover_name="country"  # 控制点名称          )

运行结果:

Python可视化工具Plotly怎么用

4.旭日图

# 旭日图px.sunburst(df_2007,   # 绘图数据            path=['continent', 'country'],  # 指定路径:从洲到国家            values='pop', # 数据大小:人口数            color='lifeExp',  # 颜色            hover_data=['iso_alpha'] # 显示数据           )

运行结果:

Python可视化工具Plotly怎么用

5.地图图形

# 设置地图的图形px.choropleth(  df,  # 数据  locations="iso_alpha",  # 简称  color="lifeExp",  # 颜色取值  hover_name="country",  # 悬停数据  animation_frame="year",  # 播放按钮设置  color_continuous_scale=px.colors.sequential.Plasma,  # 颜色变化取值  projection="natural earth"  # 使用的地图设置)

运行结果:

Python可视化工具Plotly怎么用

三.实战案例

使用泰坦里克号生存为例

import plotlyimport plotly.express as pximport plotly.graph_objects as goimport plotly.io as pioimport pandas as pdimport numpy as np
#数据读取path2='./dataSet/test.csv'path3='./dataSet/train.csv'test=pd.read_csv(path2)train=pd.read_csv(path3)#数据合并data=pd.concat([test,train])

运行结果:

Python可视化工具Plotly怎么用

# 展示数据中survived分布情况df1=pd.DataFrame(data=data['Survived'].value_counts())df1

运行结果:

Python可视化工具Plotly怎么用

fig1=px.bar(df1,y='Survived',text='Survived',color_discrete_sequence=[['#B4C7EC','#14A577']])fig1.update_layout(title='Survival Status in Titanic',                   title_x=.5,                  xaxis_title='Passenger survival status',                  yaxis_title='Numbers',                  font=dict(family='arial',color='#000000',size=12),                  bargap=.5)fig1.update_xaxes(tick0=0,  #设置X轴起点,防止从负数开始                  dtick=1,   #设置间隔,防止出现0.5间隔                  tickvals=[0,1], #设置tick数值,为了重命名                 ticktext=['Drowned','Suvived'],#重命名系列index                 tickfont=dict(family='arial',color='#000000',size=14)) fig1.update_yaxes(range=[0,650]) #设置Y轴区间,使图形不至于视觉上压迫fig1.update_traces(textposition='outside',                   textfont_size=16,                  textfont_color=['#8C1004','#007046'])fig1.show()

运行结果:

Python可视化工具Plotly怎么用

# 以survived 与sex为例,展示各性别下,生存与死亡的相对关系。df_sex=pd.DataFrame(data=data.groupby(['Survived','Sex'])['PassengerId'].count())df_sex=df_sex.reset_index()df_sex

运行结果:

Python可视化工具Plotly怎么用

fig_sex1=px.bar(df_sex,x='Survived',y='PassengerId',color='Sex',barmode='group',text='PassengerId',                 color_discrete_map={'female':'#F17F0B','male':'#0072E5'})fig_sex1.update_traces(textposition='outside',                   textfont_size=14,                      textfont_color=['#8C1004','#007046'])fig_sex1.update_xaxes(                  tickvals=[0,1], #设置tick数值,为了重命名                 ticktext=['Drowned','Suvived'],#重命名系列index                 tickfont=dict(family='arial',                           color='#000000',                           size=14)) fig_sex1.update_layout(title='Overall Suvival in terms of Sex',                       title_x=.5,                       bargap=.35,                         xaxis_title='',                      yaxis_title='Numbers of Passengers',                      font=dict(family='arial',                           color='#000000',                           size=13))fig_sex1.update_yaxes(range=[0,500],                     dtick=100)fig_sex1.show()

运行结果:

Python可视化工具Plotly怎么用

fig_sex2=px.bar(df_sex,x='Sex',y='PassengerId',facet_col='Survived',text='PassengerId',               color_discrete_sequence=[['#F17F0B','#0072E5']])fig_sex2.update_traces(textposition='outside',                      textfont_size=14,)fig_sex2.update_layout(title='Overall Suvival in terms of Sex',                       title_x=.5,                       bargap=.35,                        yaxis_title='Numbers of Passengers',                      font=dict(family='arial',                           color='#000000',                           size=13),                      )#取消自带sex标题fig_sex2.update_layout(xaxis=dict(title=''),                      xaxis2=dict(title=''))fig_sex2.update_yaxes(range=[0,500],                     dtick=100)fig_sex2.for_each_annotation(lambda a:a.update(text=a.text.replace('Survived=0.0','Drowned')))fig_sex2.for_each_annotation(lambda a:a.update(text=a.text.replace('Survived=1.0','Suvived')))fig_sex2.update_layout(annotations=[dict(font=dict(size=16,                                                  color='#002CB2'))])fig_sex2.show()

运行结果:

Python可视化工具Plotly怎么用

# 以survived 与pclass为例,展示各舱位等级下,生存与死亡的相对关系。df_pclass=pd.DataFrame(data=data.groupby(['Survived','Pclass'])['PassengerId'].count())df_pclass=df_pclass.reset_index()df_pclass

运行结果:

Python可视化工具Plotly怎么用

fig_sex1=px.bar(df_pclass,x='Survived',y='PassengerId',color='Pclass',barmode='group',text='PassengerId',                 color_discrete_map={'1':'#F17F0B','2':'#0072E5','3':'#8C1004'})fig_sex1.update_traces(textposition='outside',                   textfont_size=14,                      textfont_color=['#8C1004','#007046'])fig_sex1.update_xaxes(                  tickvals=[0,1], #设置tick数值,为了重命名                 ticktext=['Drowned','Suvived'],#重命名系列index                 tickfont=dict(family='arial',                           color='#000000',                           size=14)) fig_sex1.update_layout(title='Overall Suvival in terms of Pclass',                       title_x=.5,                       bargap=.35,                         xaxis_title='',                      yaxis_title='Numbers of Passengers',                      font=dict(family='arial',                           color='#000000',                           size=13))fig_sex1.update_yaxes(range=[0,500],                     dtick=100)fig_sex1.show()

运行结果:

Python可视化工具Plotly怎么用

以上是“Python可视化工具Plotly怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯