暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

​数据可视化 | plotly.express库

数艺学苑 2020-10-29
2486




之前的文章介绍过了数据库可视化的几种常用库,今天我们挑选其中一种非常好用的库——plotly.express库,进行详细介绍。


Plotly.Express首次在版本4.0.0中引入,是对Plotly API的高级抽象,尽管存在一些缺点,但也可与数据帧完美配合使用




依赖安装


Plotly.Express是Plotly python包的常规部分,因此最简单的方法是全部安装。

    pip install plotly

    也可以选择只安装Plotly.express


      pip install plotly.express

      使用Plotly.Express库还需要安装pandas,否则,当您尝试导入Plotly.Express时可能会出错。

      一行代码


      Plotly.Express提供了简化的语法来创建许多不同的图表类型。每个图标类型都有不同的参数,理解参数是Plotly.Express魅力的关键。您可以使用一个命令来创建大多数的图表。

        #导入plotly.express
        Import plotly.express as px
        #所有绘图的语法
        px.chart_typedfparameters

        Plotly.Express提供了简化的语法来创建许多不同的图表类型。每个图标类型都有不同的参数,理解参数是Plotly.Express魅力的关键。您可以使用一个命令来创建大多数的图表。


        要使用Plotly.Express创建图表,只需键入px.chart_type。此函数消耗一个数据框以及您的数据df和图表的参数。一些参数是图表具体,但主要是你的输入x和y值。


        通常,您可以将绘图分配给变量,以便影响图形元素和布局的设置。

          fig = px.chart_type(df, parameters)
          fig.update_layout(layout_parameters or add annotations)
          fig.update_traces(further graph parameters)
          fig.update_xaxis() # or update_yaxis
          fig.show()

          下面三种的绘制图表的方法是等效的。

            country_columns = year_columns.set_index("Country Name").T
            # 1.
            px.line(country_columns
            ,y="Spain"
            ,title="Visitors to Spain")
            # 2.
            px.line(country_columns,
            y=country_columns["Spain"],
            title="Visitors to Spain")
            # 3.
            px.line(country_columns,
            y=country_columns["Spain"].to_list(),
            labels={"y":"Spain"},
            title="Visitors to Spain")

            折线图


            让我们来探索一下基本的折线图,以欣赏使用Plotly创建可视化效果的难易程度。先来看看折线图参数颜色等信息

            • color—是许多图表类型的关键参数。它将数据分组,并为它们分配不同的颜色。每个组构成一个元素,就折线图而言,它是一条单独的线。除非使用以下参数设置确切的颜色,否则将为每行分配颜色。

            • color_discrete_sequence —选择线条的预定义颜色,例如color_discrete_sequence = ["red","yellow"]。如果您提供的颜色少于系列数,Plotly将自动分配其余颜色。

            • color_discrete_map —允许与上述相同,但以字典的形式将颜色分配给特定系列。color_discrete_map = {"Spain":"Black"}

            • line_dash —类似于color它,仅更改破折号而不是颜色

            • line_group —与颜色类似,它用于区分分隔线的值(类别),但是在这种情况下,所有颜色将具有相同的颜色,并且不会为其创建图例。

            动画制作


            最后,我们要了解plotly.Express流行的参数——动画。该参数animation_frame 指向用于区分动画帧的列。您必须稍微更新数据集才能创建此动画。列years_upto包含所有历史数据。详细数据如下图所示


              #然后我们将“year_upto”作为animation_frame参数
              px.line(spfrit,
              x =“ years”,
              y =“ visitors”,
              color =“ Country Name”,
              title =“ International Visitors”,
              range_x = [1995,2018] ,
              range_y = [25000000,90000000],
              animation_frame =“ year_upto”)


              效果图

              一个实例


              查看内置的人口寿命数据集gapminder:

                #内置gapminder数据集概览
                print(px.data.gapminder.__doc__)
                px.data.gapminder().head()

                据集概览:


                点击https://www.gapminder.org/data/就可以去网站查看需要的数据,官网截图如下:

                首先简单地绘制一个散点图:

                  import plotly.express as px
                  import plotly.offline as of
                  gapminder = px.data.gapminder()
                  gapminder2007=gapminder.query('year==2007')
                  a=px.scatter(gapminder2007, x='gdpPercap', y='lifeExp')
                  of.plot(a)


                  效果图

                  再给它点“颜色”瞧瞧:

                    #通过大陆颜色进行区分
                    a=px.scatter(gapminder2007, x='gdpPercap', y='lifeExp',color='continent')


                    效果图

                    再添加一些形状:

                      #通过人口总数进行区分
                      px.scatter(gapminder2007, x='gdpPercap', y='lifeExp',color='continent',size='pop',size_max=100,hover_name='country')


                      效果图

                      再划分个小组:

                        #通过大洲进行划分
                        px.scatter(gapminder2007, x='gdpPercap', y='lifeExp',color='continent',size='pop',size_max=100,hover_name='country',facet_col='continent')


                        效果图


                        按时间推移设置动画:


                        还可以添加一些地理信息,如在地图上动态显示:



                        事实上,plotly.express 支持三维散点图、三维线形图、极坐标和地图上三元坐标以及二维坐标、条形图(Bar)。您还可以使用单变量设置中的直方图、箱形图、小提琴图、双变量分布的密度等高线图

                        plotly.express作为一个新的Python可视化库,在Plotly生态系统下,将会迅速发展,所以不要犹豫,马上用起来吧。由于篇幅有限,今天对它的介绍就到这里啦,欲知后事如何,请听下回分晓吧~


                        原文链接:  https://towardsdatascience.com/visualization-with-plotly-express-comprehensive-guide-eb5ee4b50b57


                        END


                        本文作者:


                        指导老师:


                        扫码二维码
                        关注我们
                        了解更多精彩

                        欢迎关注

                          微信公众号  

                        “沈浩老师”




                        文章转载自数艺学苑,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                        评论