之前的文章介绍过了数据库可视化的几种常用库,今天我们挑选其中一种非常好用的库——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_type(df,parameters)
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_yaxisfig.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()
数据集概览:

点击就可以去网站查看需要的数据,官网截图如下:

首先简单地绘制一个散点图:
import plotly.express as pximport plotly.offline as ofgapminder = 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)。您还可以使用单变量设置中的直方图、箱形图、小提琴图、双变量分布的密度等高线图。

原文链接:
END
本文作者:



指导老师:



欢迎关注
微信公众号
“沈浩老师”




