• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    关于Python可视化Dash工具之plotly基本图形示例详解

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

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

    代码示例

    import plotly.express as px
    df = 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作为不同颜色区分标志 color
    fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species")
    fig.show()
     
    #追加petal_length作为散点大小,变位气泡图 size
    fig = px.scatter(df, x="sepal_width", y="sepal_length",
             color="species",size='petal_length')
    fig.show()
     
    #追加petal_width作为额外列,在悬停工具提示中显示为额外数据 hover_data
    fig = px.scatter(df, x="sepal_width", y="sepal_length",
             color="species", size='petal_length',
             hover_data=['petal_width'])
    fig.show()
     
    #以鸢尾花类型-species区分散点的形状 symbol
    fig = 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_name
    fig = 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作为散点的文本值 text
    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")
    fig.show()
     
    #追加图表标题 title
    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="鸢尾花分类展示")
    fig.show()
     
    #以鸢尾花类型-species作为动画播放模式 animation_frame
    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")
    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 visibility
    fig = 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   12
    fig = 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    2
    df = 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 pd
    df = 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   4
    fig = px.sunburst(df, path=['day', 'time', 'sex'], 
             values='total_bill')
    fig.show()
     
    import numpy as np
    df = 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 np
    df = px.data.gapminder().query("year == 2007")
    df["world"] = "world" # in order to have a single root node
    fig = 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基本图形示例详解的文章就介绍到这了,更多相关Python plotly基本图形内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • 分享8个非常流行的 Python 可视化工具包
    • python可视化 matplotlib画图使用colorbar工具自定义颜色
    • Python可视化工具如何实现动态图表
    • 详解python实现可视化的MD5、sha256哈希加密小工具
    • 基于python实现可视化生成二维码工具
    • 这3个Python实时可视化工具包来帮你了解性能瓶颈
    上一篇:python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别详解
    下一篇:配置python连接oracle读取excel数据写入数据库的操作流程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    关于Python可视化Dash工具之plotly基本图形示例详解 关于,Python,可视化,Dash,工具,