文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python可视化Dash工具之plotly基本图形的实现示例

2023-06-14 06:47

关注

小编给大家分享一下Python可视化Dash工具之plotly基本图形的实现示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

Plotly Express是对 Plotly.py 的高级封装,内置了大量实用、现代的绘图模板,用户只需调用简单的API函数,即可快速生成漂亮的互动图表,可满足90%以上的应用场景。

Plotly Express提供的几个样例库进行散点图、折线图、饼图、柱状图、气泡图、桑基图、玫瑰环图、堆积图、二维面积图、甘特图等基本图形的实现。

import plotly.express as pxdf = px.data.iris()#Index(['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species','species_id'],dtype='object')#   sepal_length sepal_width ...  species species_id# 0       5.1     3.5 ...   setosa      1# 1       4.9     3.0 ...   setosa      1# 2       4.7     3.2 ...   setosa      1# ..      ...     ... ...    ...     ...# 149      5.9     3.0 ... virginica      3# plotly.express.scatter(data_frame=None, x=None, y=None, # color=None, symbol=None, size=None,# hover_name=None, hover_data=None, custom_data=None, text=None,# facet_row=None, facet_col=None, facet_col_wrap=0, facet_row_spacing=None, facet_col_spacing=None,# error_x=None, error_x_minus=None, error_y=None, error_y_minus=None,# animation_frame=None, animation_group=None,# category_orders=None, labels=None, orientation=None,# color_discrete_sequence=None, color_discrete_map=None, color_continuous_scale=None, # range_color=None, color_continuous_midpoint=None,# symbol_sequence=None, symbol_map=None, opacity=None, # size_max=None, marginal_x=None, marginal_y=None,# trendline=None, trendline_color_override=None, # log_x=False, log_y=False, range_x=None, range_y=None,# render_mode='auto', title=None, template=None, width=None, height=None)# 以sepal_width,sepal_length制作标准散点图fig = px.scatter(df, x="sepal_width", y="sepal_length")fig.show()  #以鸢尾花类型-species作为不同颜色区分标志 colorfig = px.scatter(df, x="sepal_width", y="sepal_length", color="species")fig.show() #追加petal_length作为散点大小,变位气泡图 sizefig = px.scatter(df, x="sepal_width", y="sepal_length",         color="species",size='petal_length')fig.show() #追加petal_width作为额外列,在悬停工具提示中显示为额外数据 hover_datafig = px.scatter(df, x="sepal_width", y="sepal_length",         color="species", size='petal_length',         hover_data=['petal_width'])fig.show() #以鸢尾花类型-species区分散点的形状 symbolfig = px.scatter(df, x="sepal_width", y="sepal_length",         symbol="species" ,color="species",          size='petal_length',         hover_data=['petal_width'])fig.show() #追加petal_width作为额外列,在悬停工具提示中以粗体显示。 hover_namefig = px.scatter(df, x="sepal_width", y="sepal_length",         symbol="species" ,color="species",          size='petal_length',         hover_data=['petal_width'], hover_name="species")fig.show() #以鸢尾花类型编码-species_id作为散点的文本值 textfig = px.scatter(df, x="sepal_width", y="sepal_length",         symbol="species" ,color="species",          size='petal_length',         hover_data=['petal_width'], hover_name="species",         text="species_id")fig.show() #追加图表 titlefig = px.scatter(df, x="sepal_width", y="sepal_length",         symbol="species" ,color="species", size='petal_length',         hover_data=['petal_width'], hover_name="species",         text="species_id",title="鸢尾花分类展示")fig.show() #以鸢尾花类型-species作为动画播放模式 animation_framefig = px.scatter(df, x="sepal_width", y="sepal_length",         symbol="species" ,color="species", size='petal_length',         hover_data=['petal_width'], hover_name="species",         text="species_id",title="鸢尾花分类展示",         animation_frame="species")fig.show() #固定X、Y最大值最小值范围range_x,range_y,防止动画播放时超出数值显示fig = px.scatter(df, x="sepal_width", y="sepal_length",         symbol="species" ,color="species", size='petal_length',         hover_data=['petal_width'], hover_name="species",         text="species_id",title="鸢尾花分类展示",         animation_frame="species",range_x=[1.5,4.5],range_y=[4,8.5])fig.show() df = px.data.gapminder().query("country=='China'")# Index(['country', 'continent', 'year', 'lifeExp', 'pop', 'gdpPercap', 'iso_alpha', 'iso_num'],dtype='object')#   country continent year ...  gdpPercap iso_alpha iso_num# 288  China   Asia 1952 ...  400.448611    CHN   156# 289  China   Asia 1957 ...  575.987001    CHN   156# 290  China   Asia 1962 ...  487.674018    CHN   156# plotly.express.line(data_frame=None, x=None, y=None, # line_group=None, color=None, line_dash=None,# hover_name=None, hover_data=None, custom_data=None, text=None,# facet_row=None, facet_col=None, facet_col_wrap=0, # facet_row_spacing=None, facet_col_spacing=None,# error_x=None, error_x_minus=None, error_y=None, error_y_minus=None,# animation_frame=None, animation_group=None,# category_orders=None, labels=None, orientation=None,# color_discrete_sequence=None, color_discrete_map=None,# line_dash_sequence=None, line_dash_map=None,# log_x=False, log_y=False,# range_x=None, range_y=None,# line_shape=None, render_mode='auto', title=None, # template=None, width=None, height=None)# 显示中国的人均寿命fig = px.line(df, x="year", y="lifeExp", title='中国人均寿命')fig.show() # 以不同颜色显示亚洲各国的人均寿命df = px.data.gapminder().query("continent == 'Asia'")fig = px.line(df, x="year", y="lifeExp", color="country",        hover_name="country")fig.show() # line_group="country" 达到按国家去重的目的df = px.data.gapminder().query("continent != 'Asia'") # remove Asia for visibilityfig = px.line(df, x="year", y="lifeExp", color="continent",       line_group="country", hover_name="country")fig.show() # bar图df = px.data.gapminder().query("country == 'China'")fig = px.bar(df, x='year', y='lifeExp')fig.show() df = px.data.gapminder().query("continent == 'Asia'")fig = px.bar(df, x='year', y='lifeExp',color="country" )fig.show() df = px.data.gapminder().query("country == 'China'")fig = px.bar(df, x='year', y='pop',       hover_data=['lifeExp', 'gdpPercap'], color='lifeExp',       labels={'pop':'population of China'}, height=400)fig.show() fig = px.bar(df, x='year', y='pop',       hover_data=['lifeExp', 'gdpPercap'], color='pop',       labels={'pop':'population of China'}, height=400)fig.show() df = px.data.medals_long()# #     nation  medal count# # 0 South Korea  gold   24# # 1    China  gold   10# # 2    Canada  gold   9# # 3 South Korea silver   13# # 4    China silver   15# # 5    Canada silver   12# # 6 South Korea bronze   11# # 7    China bronze   8# # 8    Canada bronze   12fig = px.bar(df, x="nation", y="count", color="medal",        title="Long-Form Input")fig.show() # 气泡图df = px.data.gapminder()# X轴以对数形式展现fig = px.scatter(df.query("year==2007"), x="gdpPercap", y="lifeExp",         size="pop",         color="continent",hover_name="country",          log_x=True, size_max=60)fig.show() # X轴以标准形式展现fig = px.scatter(df.query("year==2007"), x="gdpPercap", y="lifeExp",         size="pop",         color="continent",hover_name="country",          log_x=False, size_max=60)fig.show() # 饼状图px.data.gapminder().query("year == 2007").groupby('continent').count()#      country year lifeExp pop gdpPercap iso_alpha iso_num# continent# Africa     52  52    52  52     52     52    52# Americas    25  25    25  25     25     25    25# Asia      33  33    33  33     33     33    33# Europe     30  30    30  30     30     30    30# Oceania     2   2    2  2     2     2    2df = px.data.gapminder().query("year == 2007").query("continent == 'Americas'")fig = px.pie(df, values='pop', names='country',       title='Population of European continent')fig.show() df.loc[df['pop'] < 10000000, 'country'] = 'Other countries'fig = px.pie(df, values='pop', names='country',        title='Population of European continent',       hover_name='country',labels='country')fig.update_traces(textposition='inside', textinfo='percent+label')fig.show() df.loc[df['pop'] < 10000000, 'country'] = 'Other countries'fig = px.pie(df, values='pop', names='country',        title='Population of European continent',       hover_name='country',labels='country',        color_discrete_sequence=px.colors.sequential.Blues)fig.update_traces(textposition='inside', textinfo='percent+label')fig.show() # 二维面积图df = px.data.gapminder()fig = px.area(df, x="year", y="pop", color="continent",        line_group="country")fig.show() fig = px.area(df, x="year", y="pop", color="continent",        line_group="country",       color_discrete_sequence=px.colors.sequential.Blues)fig.show() df = px.data.gapminder().query("year == 2007")fig = px.bar(df, x="pop", y="continent", orientation='h',       hover_name='country',       text='country',color='continent')fig.show() # 甘特图import pandas as pddf = pd.DataFrame([  dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28',      Completion_pct=50, Resource="Alex"),  dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15',     Completion_pct=25, Resource="Alex"),  dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30',      Completion_pct=75, Resource="Max")])fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task",          color="Completion_pct")fig.update_yaxes(autorange="reversed")fig.show() fig = px.timeline(df, x_start="Start", x_end="Finish", y="Resource",          color="Resource")fig.update_yaxes(autorange="reversed")fig.show() # 玫瑰环图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   4fig = px.sunburst(df, path=['day', 'time', 'sex'],          values='total_bill')fig.show() import numpy as npdf = px.data.gapminder().query("year == 2007")fig = px.sunburst(df, path=['continent', 'country'],          values='pop',         color='lifeExp', hover_data=['iso_alpha'],         color_continuous_scale='RdBu',         color_continuous_midpoint=np.average(df['lifeExp'],                             weights=df['pop']))fig.show() df = px.data.gapminder().query("year == 2007")fig = px.sunburst(df, path=['continent', 'country'],          values='pop',         color='pop', hover_data=['iso_alpha'],         color_continuous_scale='RdBu')fig.show() # treemap图import numpy as npdf = px.data.gapminder().query("year == 2007")df["world"] = "world" # in order to have a single root nodefig = px.treemap(df, path=['world', 'continent', 'country'],          values='pop',         color='lifeExp', hover_data=['iso_alpha'],         color_continuous_scale='RdBu',         color_continuous_midpoint=np.average(df['lifeExp'],                             weights=df['pop']))fig.show() fig = px.treemap(df, path=['world', 'continent', 'country'], values='pop',         color='pop', hover_data=['iso_alpha'],         color_continuous_scale='RdBu',         color_continuous_midpoint=np.average(df['lifeExp'],                             weights=df['pop']))fig.show() fig = px.treemap(df, path=['world', 'continent', 'country'], values='pop',         color='lifeExp', hover_data=['iso_alpha'],         color_continuous_scale='RdBu')fig.show() fig = px.treemap(df, path=[ 'continent', 'country'], values='pop',         color='lifeExp', hover_data=['iso_alpha'],         color_continuous_scale='RdBu')fig.show() fig = px.treemap(df, path=[ 'country'], values='pop',         color='lifeExp', hover_data=['iso_alpha'],         color_continuous_scale='RdBu')fig.show() # 桑基图tips = px.data.tips()fig = px.parallel_categories(tips, color="size",               color_continuous_scale=px.colors.sequential.Inferno)fig.show()

看完了这篇文章,相信你对“Python可视化Dash工具之plotly基本图形的实现示例”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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