设为首页 加入收藏

TOP

推荐:这才是你寻寻觅觅想要的 Python 可视化神器(一)
2019-03-25 14:07:55 】 浏览:107
Tags:推荐 寻寻觅觅 想要 Python 可视化 神器

Plotly Express 是一个新的高级 Python 可视化库:它是 Plotly.py 的高级封装,它为复杂的图表提供了一个简单的语法。 受 Seaborn 和 ggplot2 的启发,它专门设计为具有简洁,一致且易于学习的 API :只需一次导入,您就可以在一个函数调用中创建丰富的交互式绘图,包括分面绘图(faceting)、地图、动画和趋势线。 它带有数据集、颜色面板和主题,就像 Plotly.py 一样。Plotly Express 完全免费:凭借其宽松的开源 MIT 许可证,您可以随意使用它(是的,甚至在商业产品中!)。 最重要的是,Plotly Express 与 Plotly 生态系统的其他部分完全兼容:在您的 Dash 应用程序中使用它,使用 Orca 将您的数据导出为几乎任何文件格式,或使用JupyterLab 图表编辑器在 GUI 中编辑它们!

pip install plotly_express 命令可以安装 Plotly Express。

使用 Plotly Express 轻松地进行数据可视化

一旦导入Plotly Express(通常是 px ),大多数绘图只需要一个函数调用,接受一个整洁的Pandas dataframe,并简单描述你想要制作的图。 如果你想要一个基本的散点图,它只是px.scatter(data,x =“column_name”,y =“column_name”)

以下是 内置的 Gapminder 数据集 的示例,显示2007年按国家/地区的人均预期寿命和人均GDP 之间的趋势:

import plotly_express as px

gapminder = px.data.gapminder()
gapminder2007 = gapminder.query('year == 2007')
px.scatter(gapminder2007, x='gdpPercap', y='lifeExp')

image01

如果你想通过大陆区分它们,你可以使用 color 参数为你的点着色,由 px 负责设置默认颜色,设置图例等:

image02

这里的每一点都是一个国家,所以也许我们想要按国家人口来衡量这些点...... 没问题:这里也有一个参数来设置,它被称为 size

image03

如果你好奇哪个国家对应哪个点? 可以添加一个 hover_name ,您可以轻松识别任何一点:只需将鼠标放在您感兴趣的点上即可! 事实上,即使没有 hover_name ,整个图表也是互动的:

image04

也可以通过 facet_col =”continent“ 来轻松划分各大洲,就像着色点一样容易,并且让我们使用 x轴 对数(log_x)以便在我们在图表中看的更清晰:

image06

也许你不仅仅对 2007年 感兴趣,而且你想看看这张图表是如何随着时间的推移而演变的。 可以通过设置 animation_frame =“year” (以及 animation_group =“country” 来标识哪些圆与控制条中的年份匹配)来设置动画。 在这个最终版本中,让我们在这里调整一些显示,因为像“gdpPercap” 这样的文本有点难看,即使它是我们的数据框列的名称。 我们可以提供更漂亮的“标签” (labels),可以在整个图表、图例、标题轴和悬停(hovers)中应用。 我们还可以手动设置边界,以便动画在整个过程中看起来更棒:

image07

因为这是地理数据,我们也可以将其表示为动画地图,因此这清楚地表明 Plotly Express 不仅仅可以绘制散点图(不过这个数据集缺少前苏联的数据)。

image08

事实上,Plotly Express 支持三维散点图、三维线形图、极坐标和地图上三元坐标以及二维坐标。 条形图(Bar)有二维笛卡尔和极坐标风格。进行可视化时,您可以使用单变量设置中的直方图(histograms)和箱形图(box)或小提琴图(violin plots),或双变量分布的密度等高线图(density contours)。 大多数二维笛卡尔图接受连续或分类数据,并自动处理日期/时间数据。 可以查看我们的图库 (ref-3) 来了解每个图表的例子。

image09

上述动态图包含 10多张 图片的可视化,『Python数据之道』已将代码整合到 jupyter notebook 文件中,在公号回复 “code” 即可获得源代码。

下图即是其中的一个图形:

image

可视化分布

数据探索的主要部分是理解数据集中值的分布,以及这些分布如何相互关联。 Plotly Express 有许多功能来处理这些任务。

使用直方图(histograms),箱形图(box)或小提琴图(violin plots)可视化单变量分布:

直方图:

image10

箱形图:

image11

小提琴图:
image12

还可以创建联合分布图(marginal rugs),使用直方图,箱形图(box)或小提琴来显示双变量分布,也可以添加趋势线。 Plotly Express 甚至可以帮助你在悬停框中添加线条公式和R²值! 它使用 statsmodels 进行普通最小二乘(OLS)回归或局部加权散点图平滑(LOWESS)。

image13

颜色面板和序列

在上面的一些图中你会注意到一些不错的色标。 在 Plotly Express 中, px.colors 模块包含许多有用的色标和序列:定性的、序列型的、离散的、循环的以及所有您喜欢的开源包:ColorBrewer、cmocean 和 Carto 。 我们还提供了一些功能来制作可浏览的样本供您欣赏(ref-3):

定性的颜色序列:

image14

众多内置顺序色标中的一部分:

image15

用一行 Python 代码进行交互式多维可视化

我们特别为我们的交互式多维图表感到自豪,例如散点图矩阵(SPLOMS)、平行坐标和我们称之为并行类别的并行集。 通过这些,您可以在单个图中可视化整个数据集以进行数据探索。 在你的Jupyter 笔记本中查看这些单行及其启用的交互:

image16

散点图矩阵(SPLOM)允许您可视化多个链接的散点图:数据集中的每个变量与其他变量的关系。 数据集中的每一行都显示为每个图中的一个点。 你可以进行缩放、平移或选择操作,你会发现所有图都链接在一起!

image17

平行坐标允许您同时显示3个以上的连续变量。 dataframe 中的每一行都是一行。 您可以拖动尺寸以重新排序它们并选择值范围之间的交叉点。

image18

并行类别是并行坐标的分类模拟:使用它们可视化数据集中多组类别之间的关系。

Plotly 生态系统的一部分

Plotly Express 之于 Plotly.py 类似 Seaborn 之于 matplotlib:Plotly Express 是一个高级封装库,允许您快速创建图表,然后使用底层 API 和生态系统的强大功能进行修改。 对于Plotly 生态系统,这意味着一旦您使用 Plotly Express 创建了一个图形,您就可以使用Themes,使用 FigureWidgets 进行命令性编辑,使用 Orca 将其导出为几乎任何文件格式,或者在我们的 GUI JupyterLab 图表编辑器中编辑它 。

主题(Themes)允许您控制图形范围的设置,如边距、字体、背景颜色、刻度定位等。 您可以使用模板参数应用任何命名的主题或主题对象:

image19

有三个内置的 Plotly 主题可以使用, 分别是 plotly, plotly_white 和 plotly_dark

px 输出继承自 Plotly.py 的 FigureExpressFigure 的对象,这意味着你可以使用任何 Figure 的访问器和方法来改变 px 生成的绘图。 例如,您可以将 .update() 调用链接到

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python自动化测试入门篇-postman 下一篇Python之使用转义序列 \n 和 \t ..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目