TowardsDataScience 博客中文翻译 2020(二百七十九)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

bubble.io 中的数据可视化

原文:https://towardsdatascience.com/data-visualization-in-bubble-io-9f83d54ef599?source=collection_archive---------12-----------------------

如何在不编码的情况下生成用户友好的数据可视化?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

卢克·切瑟在 Unsplash 上的照片

Bubble.io 对于初创公司和中型公司来说,这是一个非常好的平台,可以以非常低的成本,有时甚至是零成本来开发他们的网站。

它使非技术人员(是的,像我一样)和那些时间紧迫的团队能够从一开始就不用自学 Python Flask 来构建网站。相反,它允许用户将元素拖放到画布上,并定义工作流来控制逻辑。【1】

据说,Bubble 的愿景是让手工编码在很大程度上过时。【2】

在我最近的实习期间,我有机会用 bubble.io 从零开始开发一个公司网站,只花了 120 美元购买了 2 个插件。很神奇,对吧?

今天,我想带你浏览网站的一个重要部分:数据可视化,以及如何做。

首先,bubble 的 marketplace 中有相当多的数据可视化插件。但经过仔细选择,我选择了 ApexCharts.js,因为它的不同图表和图形范围相对较广,如面积图(堆栈图)、条形图、圆环图、饼图、散点图、热图等。您可以点击此页面查看更多详情:https://pluginpreview.bubbleapps.io/chart

要将这个插件与页面集成,有几个步骤:

  1. 通过 SQL 数据库连接器(bubble 内置免费插件,万岁!)
  2. 添加新的查询以生成相应的系列类别(列)和数据(行)
  3. 选择可视化类型,在页面上添加新的视觉元素,并填充“外观”部分的空白
  4. 享受你美丽的想象🎉

接下来,我将一步一步地向您介绍,并使用一些简单的示例。

步骤 1:连接您的数据库

单击工具栏部分的“插件”并选择“SQL 数据库连接器”

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

插件页面

如果你在“已安装插件”列表中看不到它,你需要从插件市场下载,不需要额外付费。

接下来,选择数据库类型,并按照指示输入连接字符串:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与您的数据库连接

建议使用 AWS RDS 服务,根据您的存储情况,免费层在相当长一段时间内可能就足够了。(另一种节省一些的方法💲!)

步骤 2:添加新的查询以相应地生成系列类别(列)和数据(行)

在此之前,我需要演示我的三个演示表。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

关系模式

如您所见,这只是为了演示,您实际的关系表应该比这复杂得多。

我的第一个查询是根据年/月为不同的部门选择 Sales_Amount。我在这里将“年/月”格式化为文本(varchar ),这是为了演示,也是因为 bubble.io 只启用“日期”格式,如“2020–01–01 ”,而不是我在这里想要的格式。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

简单的 SQL 查询

⚠️There’re 在这里要注意几件事:

  1. 问号“?”对应于您稍后要在界面上输入的参数值,请确保正确设置类型;
  2. 总是以**‘LIMIT 200’**结束你的查询,这是 bubble.io 内置的设置,以防查询返回太多值;

通过单击“更新查询类型”按钮,您将看到此界面,并确保将数据类型设置为您想要的⬇️

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

接下来,我将展示一个简单的折线图:

当“出发编号”等于 1 时,部门名称=“家庭”

步骤 3:选择可视化类型,在页面上添加新的可视化元素,并填充外观部分的空白

为了获得定制的输出,在填充“外观”部分的空白时,您需要选择“从外部 API 获取数据”,然后从 SQL 连接查询列表中进行选择。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在这是魔术棒部分,通过设置你的返回值(列和行):

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

请记住,通常系列类别需要是“文本”条目,而系列数据是“数字”。您也可以通过输入数字来选择小数金额。

瞧啊。现在你得到了这个漂亮的交互折线图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当’部门编号’ = 1 时,销售金额的简单折线图

在这篇文章变得太长之前,我只想演示一些其他的可视化的可能性,比如多条形图和堆栈图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

条形图与堆栈图

至于第二个查询,我选择显示所有订单中部门的比例。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我建议用圆环图或饼图来展示这些数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

甜甜圈 vs 馅饼

在这个插件中你仍然可以做很多事情,比如改变颜色、大小、字体等等。我认为这个插件是一个不错的选择,可以在 bubble.io 基础设施下实现数据可视化,而不是花一大笔钱从 Tableau 或 PowerBI 购买许可证。(但是如果你预算充足💰,那就另当别论了……)

无论如何,我会回来分享更多关于如何最大限度地利用 bubble.io 的内容。😝

谢谢大家!

数据科学中的数据可视化

原文:https://towardsdatascience.com/data-visualization-in-data-science-5681cbdde5bf?source=collection_archive---------8-----------------------

解决分析问题时如何有效地使用图表

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

粘土银行Unsplash 拍摄的照片

数据可视化简介

数据可视化是创建交互式视觉效果以了解趋势、变化并从数据中获得有意义的见解的过程。数据可视化主要用于数据检查和清理、探索和发现,以及向业务涉众传达结果。大多数数据科学家很少关注图表,只关注数字计算,这有时会产生误导。为了理解可视化的重要性,让我们看看下面图 1 和图 2 中 Anscombe 的数据四重奏。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图一。Anscombe 的数据四重奏显示了一对 X 和 Y 可以具有不同的值,但却具有不同的中心趋势和相关值。数据来源——弗朗西斯·j·安斯科姆(1973 年)

当使用下图 2 中的可视化表示时,相同的数据点描绘了完全不同的趋势。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图二。展示了使用简单汇总统计数据检查时,四个相同的数据集看起来相似,但绘制成图表时差异很大。图像鸣谢——弗朗西斯·j·安斯科姆(1973)

在进行任何计算之前,将数据可视化是很重要的。与描述性统计相比,可视化表示可以传达更多的信息。

数据可视化的作用

多种商业智能工具(BI)目前统治着市场,各有利弊。自助式仪表盘的概念旨在让对数据科学知之甚少或一无所知的利益相关者独立处理数据,并得出一些可能有助于其日常业务决策的发现。在下面的例子中,我们将看看使用 Tableau 或 Python 的数据可视化的一些应用。

数据检查和清理

数据可视化可用于查找数据集中的明显错误,包括空值、随机值、不同记录、日期格式、空间数据的敏感性以及字符串和字符编码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3。展示了位于中央商务区及其周围的不同传感器捕捉到的墨尔本行人流量的分布。其思想是分析纬度和经度信息对于给定的数据集是否有效。该图像是作者使用 Tableau 开发的。

数据分布

数据可视化可用于了解数据的分布,寻找集中趋势(平均值、中值和众数),使用箱线图了解异常值的存在,检查偏斜度,以及了解 winsorization 对数据分布的影响。下面的图 4 说明了如何开发箱线图来了解异常值的存在。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4。显示安装在墨尔本不同地区的不同传感器的异常值(行人流量中的异常值)。用于此分析的数据集可在此处找到。该图像是作者使用 Jupyter 笔记本开发的。

模型假设

线性回归和其他分类模型遵循某些基本假设,如数据必须呈正态分布、不同自变量之间不应存在相关性、误差项的同方差性等等。因此,可视化也是验证这些假设的关键。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5。使用热图说明数字变量的相关图。关联图用于删除高度相关的变量,同时构建分类模型,以使用航班和设施数据预测客户满意度。该图像是作者使用 Jupyter 笔记本开发的。

人在回路分析

数据科学家通常使用人在循环分析来获得数据的外观和感觉,做出假设,运行适当的分析来验证假设,并重复该过程,直到确定确凿的证据。例如,在 Python 中,一个非常流行的包 Seaborn 有一个叫做 pair plot 的函数。配对图在确定因变量和自变量之间的关系时非常有用。可视化的想法是更好地理解一些独立变量是否影响模型结果的方向感。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6。说明了因变量(比如航空公司乘客的客户满意度)与独立变量(如飞行距离、到达延迟和出发延迟)的配对图表示。该图像是作者使用 Jupyter 笔记本开发的。

降维

在处理多个变量时,很难在 n 维空间中可视化数据。例如,在具有不同客户属性(比如数字)的数据集中,很难考虑所有属性来绘制客户。在这种情况下,主成分分析(PCA)或因子分析等降维技术有助于将属性降维。主成分分析找出能最好地解释观察结果的变量的线性组合,而因子分析找出能最好地解释变量之间关系的变量的线性组合。然后,可以绘制降低的维度,以便在 2D 空间中分析客户。

关于如何用 Python 重新创建这些图表的更多信息可以在这里找到。

[## 数据可视化:用 Python 中的图表说出来

使用 matplotlib、pyplot 和…的 python 可视化最佳实践和概念的完整实践指南

towardsdatascience.com](/data-visualization-say-it-with-charts-in-python-138c77973a56)

分析问题中的数据集类型

了解数据集的类型对于确定可以应用的可视化类型非常重要。例如,当处理表格数据时,与空间数据相比,条形图和折线图的组合可能会很有用,在空间数据中,带有密度图的地图可能会有效地传达结果。在我们深入了解可视化的类型之前,让我们先了解一些常用的关键数据类型。

表列数据

以表格形式组织的数据,每个数据项占一行,每个属性占一列。例如,Excel 格式的数据集、CSV 文件、Pandas 数据框等。

网络数据

网络中的节点是数据项,节点之间的链接是关系。例如社交网络。

空间数据:

根据其空间位置或范围自然组织和理解的数据。例如位置的纬度和经度、地理信息、郊区、街道等。

文本数据:

这种数据集由单词和标点符号序列组成。例如 twitter feed 或客户投诉。

视觉词汇

下图展示了如何使用不同的可视化来描述数据中的不同场景。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 7。展示了一些有助于可视化趋势与参考点偏差的图表。图片致谢— Github.io

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 8。展示了一些有助于可视化多个数据点之间相关性的图表。图片致谢— Github.io

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 9。说明如何使用可视化来理解与时间相关的属性变化。图片致谢— Github.io

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 10。说明如何使用不同的可视化来理解不同组件的等级或顺序。图片致谢— Github.io

你可以在这里找到其他可视化的例子

跨数据类型的可视化效果

下表显示了不同数据类型的不同视觉效果。为了更好地理解这个表,我们需要更好地理解变量(来自数据的属性)是如何被分类到不同的数据类型中的。分类变量是没有任何顺序的变量,如性别、等级、婚姻状况、工作职位等。数值变量被分割成序数变量数量变量。序数变量是可以排序的类别。例如满意度(好、差和一般)、潜力(高、中和低)等。数量变量是可以取-无穷大到+无穷大之间任何数值范围的变量。例如年龄、工资、收入、销售额等。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 11。说明了在考虑变量的数据类型的情况下,如何使用不同的图形来可视化数据中的模式。图片致谢——由作者使用 PowerPoint 制作。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 12。阐释了可用于不同数据类型的可视化类型。图片来源——由作者使用 Excel 开发。

结论

数据可视化是所有分析项目的基础。它不仅有助于深入了解数据,还可以用作数据预处理的工具。对于不同的数据类型和业务场景,拥有正确的可视化集合是有效交流结果的关键。

参考

  1. Github(未标明)。视觉词汇。[在线] ft-interactive.github.io .可在:https://ft-interactive.github.io/visual-vocabulary/【2020 年 8 月 23 日访问】。
  2. ‌Anscombe,弗朗西斯 J. (1973)统计分析中的图表。美国统计学家,27 岁,17-21 岁。

关于作者:高级分析专家和管理顾问,帮助公司通过对组织数据的商业、技术和数学的组合找到各种问题的解决方案。一个数据科学爱好者,在这里分享、学习、贡献;可以和我在 上联系 上推特

熊猫中的数据可视化

原文:https://towardsdatascience.com/data-visualization-in-pandas-2a7898e65114?source=collection_archive---------47-----------------------

仅使用熊猫进行快速数据可视化

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Max DuzijUnsplash 上拍摄的照片

介绍

在本文中,我将演示如何只用熊猫来可视化数据。它不像 Matplotlib 或 Seaborn 那样灵活,但对于快速数据探索来说非常方便。

首先,让我们以导入 pandas 和加载 Iris 数据集为例。

import pandas as pdimport seaborn
df=seaborn.load_dataset('iris')

检查数据帧

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它包含 4 个数字列和一个分类列。

线形图

让我们从简单的线条图开始。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它用不同的颜色绘制数字列。这里的 x 轴是索引。您也可以自定义绘图,例如,如果您只想查看 sepal_length 和 sepal_width,您可以这样做:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

您也可以更改轴。例如,绘制 sepal_length 与 petal_length 的关系(这里使用线图没有意义)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

散点图

显示萼片长度和花瓣长度之间关系的合适的图应该是散点图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

您可以通过替换 x 和 y 来绘制不同的列。

检查所有数字列相关性的一个技巧是绘制散点图矩阵。您可以通过以下方式做到这一点:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它显示了不同列相对于其他列的散点图矩阵和列的直方图。

直方图

直方图是查看数据分布的有用图表,在 Pandas 中,您可以使用hist()快速绘制它

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它显示了数值变量的直方图。您也可以绘制所需的列。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

箱形图

观察数据分布的另一个有用的图是箱线图。你可以使用df.plot.box()简单地绘制它

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

条形图

你可能还想比较不同的物种,你可以通过组合熊猫groupby()plot.bar()来做到这一点

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它显示了各列相对于物种的mean值。

圆形分格统计图表

也可以绘制条形图。简单的叫plot.pie()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

请注意,熊猫中的plot()函数是建立在 matplotlib 之上的,所以你可以随时使用 Matplotlib 来修改剧情。

例如,您可以更改图例的位置并隐藏 ylabel。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是这样。Pandas 中的这些绘图技术可能不像 matplotlib 或 seaborn 那样灵活和易于生成报告,但它们在早期数据探索中仍然非常方便。

感谢阅读。

你可以看看我其他关于熊猫,Numpy,Python 的文章。

[## 让我的数据分析过程更高效的 10 个熊猫窍门:第二部分

我希望我早点知道的技巧

towardsdatascience.com](/10-pandas-tricks-to-make-my-data-analyzing-process-more-efficient-part-2-b72ea43a0bb5) [## 让我的数据分析过程更高效的 10 个熊猫窍门:第 1 部分

我希望我早点知道的技巧

towardsdatascience.com](/10-pandas-tricks-to-make-my-data-analyzing-process-more-efficient-part-1-78a0cc1636f3) [## 让我的代码更好更聪明的 7 个小技巧

我希望我早点知道的技巧

towardsdatascience.com](/7-numpy-tricks-to-make-my-code-better-and-smarter-9e8a4ccf43d1) [## 让我的代码更好更聪明的 7 个 Python 技巧。

我希望我能早点知道的技巧。

towardsdatascience.com](/7-python-tricks-to-make-my-code-better-and-smarter-60dfde0b6c49)

数据可视化,让他们惊叹

原文:https://towardsdatascience.com/data-visualization-make-them-wonder-31a7a76f66df?source=collection_archive---------22-----------------------

设计强大可视化的两个概念

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

格雷格·拉科齐的照片

W 是什么让你对数据可视化如此着迷?我喜欢从数据中创造视觉效果的主要原因是,它能让我们看到研究主题的不同视角。在这篇文章中,我将分享两个概念,通过我们设计的可视化来提高我们的洞察力。

  1. DataViz 是“第二只”眼睛
  2. 知识之岛

1 — DataViz,一只“第二”眼睛

我们的大脑有能力用我们的眼睛来看 3D。这叫立体视觉。基本上,每只眼睛给我们一个 2D 视觉,因为它们在我们脸上是分开的,所以每只视网膜产生的图像略有不同。这种差异是深度的结果,深度提供了第三维度。换句话说,有第二只眼睛会带来不同的视角,当两个视角放在一起时,我们可以看到 3D。

数据可视化就像第二只眼睛,它可以给我们不同的视角,从而产生新的理解和知识。艺术家迈克尔·墨菲称之为感知转变,“当一个人对特定刺激的解释突然改变时发生的瞬间”。下面的视频展示了迈克尔·墨菲艺术的感知转变的一个例子。

佛罗伦萨·南丁格尔(1820–1910)是数据可视化设计师改变视角的完美例子,她改变了我们处理医疗保健和拯救生命的方式。她是一名护士和统计学家。她收集数据并创造可视化效果,以更好地理解战争和医院中的死亡率等主题。她用下面的图表证明了卫生条件的改善是如何降低医院死亡率和预防疾病的。点击了解更多关于佛罗伦萨·南丁格尔和她的遗产

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

显示医院死亡率的图表。信用:惠康收款

2 —知识之岛

“知识之岛”的概念很简单,拉尔夫·w·索克曼称之为“知识之岛越大,奇迹的海岸线就越长”。我们对一个主题的理解就像一个岛屿的大小,它的海岸线代表了我们可以思考、思考和质疑它的程度。

马塞洛·格莱塞写了一本名为《知识之岛》的书。科学的局限和对意义的探索”,他给出了这样的定义:

“我们拥有的知识决定了我们能够拥有的知识。随着知识的转移,我们会提出我们无法预料的新问题”。

数据可视化是增加我们知识孤岛的一种强有力的方式。它可以给我们不同的视角,增加我们岛屿的面积,从而扩大奇妙的海岸线。它将使我们能够思考以前无法思考的问题。Alberto Cairo 在他的书《真实的艺术》中以一种非常有见地的方式使用知识岛来教授数据可视化。推荐阅读。

2019 年初,我致力于一个代表这个概念的可视化。我正在研究巴西石油公司(PBR,一家巴西公司)的股票,以决定现在是否是买入的好时机。我盯着下面的图表:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

巴西石油公司股票

我的目光直奔 2013–2016 年期间。我想知道那里发生了什么使那些股票如此急剧地下跌。然后我意识到,在那些年里,巴西正在进行一项大规模行动,调查政府和巴西国家石油公司之间的腐败。我对此做了更多的研究,将政府和反腐行动中的一些重要事件放在一起,寻找与 PBR 股市的任何关联。下图是我研究的结果(点击此处查看完整页面):

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

自从迪尔玛·罗塞夫(Dilma Rousseff)在 2012 年当选巴西总统并改变了巴西国家石油公司(Petrobras)的领导层以来,股价开始下跌,并创下了过去 13 年来的最低价格。红色区域显示了近 30 人因被指控腐败而被捕的时期,紧随其后的是最低价格水平。第一个情节让我提出了新的问题,放大了我的知识孤岛,找到了新的视角。现在我的奇妙海岸线更长了,这个岛也可以变得更大了。政府腐败如何影响其他公司或经济的其他部分?我可以用政府的腐败来预测股价吗?

数据可视化是强大的,它可以改变、改善和拯救世界。这是带来新观点和创新的关键。下一次,当你着手进行数据收集或可视化设计时,记住知识之岛,让你的读者对他们从未遇到过的新问题感到好奇。

数据可视化是强大的,它可以改变、改善和拯救世界。这是带来创新的关键。当您创建和设计下一个可视化时,请牢记这些概念进行数据探索。它将引导你为你的读者提供新的数据和知识。你将使他们能够问更深层次的问题。让他们去想吧!

参考文献: 【1】n . l .安徒生《信仰之眼》四月总会(2019)T5【2】m .格莱塞《知识之岛》(2014)
【3】a .开罗《真实的艺术》(2016)

美国新冠肺炎的数据可视化

原文:https://towardsdatascience.com/data-visualization-of-covid-19-in-the-us-1881938aaf17?source=collection_archive---------37-----------------------

我们已经渡过难关了吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Yassine Khalfalli 在 Unsplash 上拍摄的照片

2020 年 1 月 19 日,第一例新型冠状病毒(新冠肺炎)抵达美国,当时华盛顿州的一名 35 岁男子带着我们现在所知的病毒常见症状走进了一家诊所:呼吸道炎症和发烧。截至 2020 年 4 月 30 日,美国有超过 100 万例新冠肺炎病例。大多数美国人都对病毒的传播感到震惊。

新冠肺炎成长动力

和流行病的情况一样,新冠肺炎的增长起初是指数增长。想象一下,一个人带着新冠肺炎病毒去参加一个聚会,并把疾病传染给了三个人。第二天,这三个人分别把病毒传染给了另外三个人。两天之内,一例冠状病毒变成了十四例。

源自一个案例的额外案例的数量可以用一个增长度量或通常称为 R0 的变量来表示。R0 由病毒传播能力和病毒携带者接触的平均人数决定。R0 在流行病的整个生命周期中是可变的。

像新冠肺炎这样的流行病不会永远以指数速度增长。随着时间的推移,流行病的增长变得类似于 S 形逻辑曲线。在流行病开始时,R0 大于 1,表明呈指数增长。随着病毒要么在整个人群中传播,要么被疫苗、病例隔离技术和/或社交距离策略阻断,增长率达到拐点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

指数增长与逻辑增长

当 RO 下降到 1 以下时,指数增长最终变为衰退。从指数增长到衰退的转变通常被媒体描述为“弯曲曲线”。随着衰变积累动量,R0 接近零,增长率实际上可以呈指数下降。

新冠肺炎疫苗不太可能在短期内准备好。病例隔离技术(包括广泛、快速检测和接触者追踪)在美国仅处于起步阶段。因此,我们一直严重依赖社交距离来减缓增长速度。显然,社会距离带来了巨大的经济和社会成本。我们不想继续保持不必要的社交距离。

但新冠肺炎最可怕的一面是指数增长的不确定性和抽象性。没有规则告诉我们指数增长可以持续多久。在疫情持续的时候,很难判断我们是否已经超越了拐点。简单地比较一段时间内新病例的数量是不够的。短时间内的增长放缓可能并不能证明增长率已经真正开始下降。R0 可以下降几周,然后再次飙升。另一方面,即使在衰退阶段,新病例也会继续增加。如果我们只关注原始数据,忽略感染点,低估衰退阶段的速度,我们可能会不必要地延长社会距离,给经济上最脆弱的美国人带来不必要的痛苦。

我们需要一种更好的方法来分析和可视化新冠肺炎增长率数据。理想情况下,我们应该提供数据,以便外行人一眼就能明白我们在任何时刻所处的位置。具体来说,我们应该能够展示数据,以便外行能够快速回答这些关键问题:

我们是否已经过了拐点?我们“弯曲曲线”了吗?

每个州都在寻求减缓病毒传播的途径?各州和各地区的差异大吗?

成长转为衰败后会发生什么?衰变阶段持续多久?

方法

使用 Python 中的数据准备、探索和可视化过程,我将尝试以更有用的方式呈现新冠肺炎增长率数据。

在逻辑曲线上,指数增长转为衰退的时刻通常被称为拐点。这是生长度量或 R0 下降到 1 以下的时刻(平均而言,一个感染病例将导致少于一个其他感染病例)。显然,这个转折点是根除病毒的一个重要里程碑。如何知道自己是否已经到了拐点?当使用对数标度以不同的方式查看逻辑曲线时,我们可以实时回答这个问题。

为了获得 S 曲线的另一个视角,重新考虑指数增长意味着什么是有帮助的:相对于时间的新案例与现有案例成比例。让我们看看现有病例和新病例在对数标度上的关系,其中轴上的单位以 10 为因子递增。这样做可以让我们清楚地看到指数增长是现有病例和新病例之间的正线性关系。在拐点处,现有病例和新病例之间的关系不再是线性的。相反,随着新病例的减少,这种关系变得越来越消极。

左侧(物流),右侧(现有与新)

Logistic 曲线的新视角

每个图表都是相同数据的不同表达。左边是一条逻辑曲线,显示了现有值如何随时间变化。在右侧,x 轴是现有案例的日志,y 轴是新案例的日志。每个点都是一个时间点。随着时间的推移,点从左向右迁移。

并非所有的逻辑曲线都是相同的,尤其是在流行病的背景下。这是两条逻辑曲线讲述不同故事的一个例子。在顶部,我们看到一条曲线,它上升迅速,但也迅速衰减。本质上,增长从“悬崖”上跌落。悬崖后是一个陡峭的下降,总病例数在 6000。在底部,我们看到一条曲线,它从未像右边的曲线那样急剧增长,但在拐点之后,它的衰减要平缓得多。所有案件最终以 10000 英镑了结。就像这些不同的逻辑曲线一样,新冠肺炎发现一些国家的增长比其他国家衰退得更快。

急剧衰减逻辑曲线

渐进贴花逻辑曲线

在流行病中,逻辑斯谛曲线增长动态如何发挥作用?将这些概念应用到新冠肺炎,这里有南韩(被广泛认为是控制疫情最成功的案例)、义大利(一个已经度过拐点但尚未脱离险境的国家)和美国的案例。在左边,我们看到每个国家一段时间内的病例总数。在右边,我们从一个不同的角度来看情况,现有案例与新案例。

对于韩国来说,自 3 月 4 日出现拐点以来,新增病例的变化率一直在相对急剧下降。对比现有病例和新病例,我们可以观察到拐点之后的下降相当陡峭。它真的“掉下悬崖”这些数据向我们描述了韩国在处理新冠肺炎问题上的有效政策。韩国现在正在重新开放经济和社会,包括学校和非必要的企业。

在意大利,自达到拐点以来,情况已经大不相同。在意大利,增长衰退的速度要慢得多。总的来说,拐点的另一边更像一个“山坡”而不是“悬崖”意大利仍比韩国更容易受到第二波指数级增长冲击。意大利还没有开始重新开放其大部分经济,预计在五月初开始一个的渐进过程。

看看美国的曲线,就到达拐点而言,我们似乎已经度过了一个转折点。但问题依然存在,美国的新冠肺炎增长会像南韩一样“跌落悬崖”,还是像义大利一样衰退得更慢?迄今为止,数据显示,意大利的情况更有可能出现,增长可能会更加缓慢。虽然美国已经度过了拐点,但我们可能还会有更多个月出现大量新病例。我们可能很难重新开放我们的经济和学校系统。

看看各个州,我们会对美国的现状有一个更详细的了解。

在美国,每个州都讲述着不同的故事

5 月 9 日更新

在《T2》这部视觉作品中有很多东西需要消化。让我们从右边的散点图开始。这里我们绘制了日志(现有病例)与日志(新病例)的对比图,就像我们对比美国和韩国时的情况一样。沿着同一性线的恒定增长(Log(现有病例)= Log(新病例))表示指数增长。离开这条线意味着到达拐点。一个状态下降的速率表明了状态案例衰减的速度。

在左手边,我们用 10 天的病例增长滚动平均值来标记美国各州。由于 50 个不同州的报告不一致,因此采用了平滑平均值。

  • 红色表示指数增长期。
  • 浅红色表示接近拐点。
  • 白色州表示该州正处于拐点
  • 浅蓝色表明该州的病例率正在缓慢下降。
  • 蓝色表示该州的病例率正在快速下降。

外卖

  • 从三月中旬到四月中旬,新冠肺炎在所有州都呈指数增长
  • 自 4 月中旬以来,我们已经看到各州的增长率都有所下降
  • 虽然美国作为一个整体似乎已经到达拐点,但在每个增长阶段都有一些州。
  • 区域内有相似之处,也有差异。
  • 少数几个州已经像韩国一样跌落悬崖,正在经历快速的指数式衰退。这些州在遥远的西北部和东北部(怀俄明州、阿拉斯加州、爱达荷州、蒙大拿州、缅因州和佛蒙特州)人口较少,是农村地区
  • 有些州仍接近指数增长。这些州位于中西部偏上的地区(明尼苏达州、爱荷华州、内布拉斯加州和堪萨斯州)
  • 对于病例最多的州(纽约、新泽西和马萨诸塞州),拐点的另一边似乎非常平缓。本质上,这些状态停留在悬崖顶上;增长指标低于 1,但非常缓慢地向零移动。
  • 逻辑增长动态方面的区域内差异始终存在。例如弗吉尼亚/西弗吉尼亚。路易斯安那州/密西西比州、俄勒冈州/加利福尼亚州、蒙大拿州/北达科他州和佛蒙特州/新罕布什尔州。这一点尤其重要,因为加州、俄勒冈州和华盛顿州的州长都宣布了类似的完全基于地区的重新开放计划。
  • 也许最可怕的发现是:我们已经看到一些州经历了增长下降,然后是第二波增长(马萨诸塞州、科罗拉多州、田纳西州和南卡罗来纳州)

第二波?

  • 值得注意的是,在整个新冠肺炎疫情期间,检测和报告一直是的问题。增长的突然增加可能是由于一直存在的检测和报告捕获案例的快速增加。与此同时,科罗拉多州田纳西州南卡罗来纳州最近都因重新开放部分经济而出现在新闻中。

最终想法

虽然达到拐点是美国根除新冠肺炎的一个里程碑,但数据显示,我们面前还有几个月的病毒。我们可以从数据中清楚地看到,许多州并没有像韩国那样坠入快速案件衰减的悬崖。在一些州,我们甚至见证了拐点之后增长指标的增加。数据清楚地表明了两点:

  • 由于物流增长的差异(甚至是区域内的差异),新冠肺炎政策应该以州为基础来确定。在病毒的不同阶段,状态变化的速度不同。
  • 尽管在每一个州都“转危为安”并度过了拐点,但现在不是鼓励回归常态的时候。大多数州不会从悬崖上跌落到指数衰减状态,未来几个月会有数千例新冠肺炎病例。回归常态只会让我们回到指数增长。

我会继续更新每期《视觉周刊》的数据,直到一切恢复正常。

来源

使用 R 实现巴西联邦保护区动物物种的数据可视化

原文:https://towardsdatascience.com/data-visualization-of-fauna-species-in-brazils-federal-conservation-units-using-r-ac9e2ac66e4?source=collection_archive---------57-----------------------

使用 R 语言工具进行环境支持数据分析的实例。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

douglasgois 通过 pixabay 拍摄的照片

欢迎阅读我的第一篇数据科学文章!我将试着以简单明了的方式解释这项工作。

联邦保护单位(缩写“UC”)是巴西国家领土的保护区,由政府划定,以其自然特征的相关性为特征,在这里保护和保存生物多样性。

生物多样性代表了存在于生物圈、我们的环境中的一整套物种,以及它们的基因和涉及物种之间关系的整个生态系统。人类作为土地不可分割的一部分,属于这个生态系统,并对其可能影响环境平衡的行为负责。

当今时代,造假者、大业主、非法伐木和偷猎的行为和活动越来越不受控制,这告诉我们应该更加注意和警惕。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Parna do Jamanxim 的非法采矿活动。照片:Ascom/Ibama

因此,我偶然发现了一个由 ICMBio (Chico Mendes 生物多样性保护研究所)提供的 UCs 中受威胁和几乎受威胁动物的数据库,该数据库更新至 2018 年。data . gov . br/dataset/especes-da-fauna-em-unidades-de-conservacao。它是一个. csv 文件,有 13 个实例,包括:物种名称、纲、目、科、脊椎动物与否、UC(保护单位)、UF(联盟单位)等。

因此,我决定使用 R 语言的一些工具来执行更精确的分析,并探索这个数据集中其他一些隐含的相关数据。

我的目标是从数不清的仍有可能但未在该数据集中直接指定的信息中提取 3 条信息,它们是:
·受威胁和接近受威胁动物多样性更大的 UCs
·联邦区内受威胁和接近受威胁动物多样性更高的 UCs(缩写“DF”);
受威胁和接近受威胁的物种,出现在 DF 地区的 UCs 中。

不要再说了,开始工作!

起初,我导入了。csv 与

fa <- read_csv("arquivo.csv")

转换到tible以便以更合适的方式进行数据处理

fauna <- as_tibble(fa)
str(fauna) #tipos de dados

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

现在我们有了一个来自。csv 文件。

经过几个步骤的数据争论后,data.frame 现在可以发现信息了。

为了统计每个 UC 在数据集中出现的次数,我重新分组为 UC 和 UF,并将其重新排列为另一个名为 uc_ordemdf

uc_qtd <- fauna_uc %>%
  group_by(UC, UF) %>%
  count()
uc_ordem <- arrange(uc_qtd, desc(n))

现在,为了更好地可视化数据并获得我想要的第一个信息,我生成了一个具有 50 个更高频率的词云,以及一个包含 10 个濒危物种多样性最大的词云的条形图。

wordcloud(uc_ordem$UC, uc_ordem$n, random.order=FALSE, rot.per=0.35, scale=c(1.9, 0.1), min.freq = 1, max.words=50, 
colors=brewer.pal(8, "Dark2"))p <- head(uc_ordem,10)
ggplot(p, aes(x=reorder(UC, n),y=n)) +
  geom_bar(stat="identity", fill="steelblue") + coord_flip() +
  labs(title = "Diversidade de Fauna Ameaçada das UCs", x = "Unidades de Conservação", y = "Número de espécies diferentes")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

根据数据集中包含的数据,Marinha do Arvoredo 和 Sooterama 的生物保护区以及 Abrolhos 国家公园是受威胁和几乎受威胁物种多样性最大的保护区(各有 48 个物种)。

有了这些信息,收集本文开头提出的最后两个信息就变得容易了。所以,我们走吧!

为了只过滤按不同种类数排序的 DF UCs,我使用了 filter() 函数,然后生成了一个新的 data.frame 的条形图。

fauna_qtd_df <- fauna_uc %>% filter(UF == "DF") %>%
                        group_by(UC) %>%
                        count() %>%
                        arrange(desc(n))ggplot(fauna_qtd_df, aes(x=reorder(UC, n),y=n)) +
  geom_bar(stat="identity", fill="steelblue") + theme(axis.text.x = element_text(angle = 50, hjust = 1)) +
  labs(title = "Diversidade de Fauna Ameaçada em UCs do DF", x = "Unidades de Conservação do DF", y = "Número de espécies diferentes")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

Á的 ESEC 是联邦区内濒危物种最多的加州大学。

作为对 R 中数据的探索性分析的最后一步,为了提取我想要的最后一个信息,我从 unique() 函数中创建了 data.frame animals_df ,这允许我提取重复的单个元素。

fauna_df <- fauna_uc %>% filter(UF == "DF") %>%
                        group_by(ID_taxon)
fn_df <- unique(fauna_df$taxon)
fn_df

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Lobo-Guará(短尾金龟)。照片由ge linger通过 pixabay 拍摄

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Tapaculo-de-brasília。照片:赫克托·博泰

最后,我有 22 个物种的名字,它们的栖息地之一是塞拉多生物群落。

现在,我已经向您介绍了 R 语言中包含的许多数据分析工具中的一些,我鼓励您从这个数据集甚至其他环境数据集包含的许多工具中获取更多信息,获取新数据并使用数据科学做出贡献,以保护和拯救生物多样性。

感谢阅读!

数据可视化:原理、工具和有用的技巧

原文:https://towardsdatascience.com/data-visualization-principles-tools-and-useful-tricks-b68d9c138a86?source=collection_archive---------30-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:沉积照片

当 Excel 电子表格不足以将这些点联系起来,并且不可能让分析师参与构建报告时,数据可视化服务和工具就来了。

为什么要数据可视化?

如果你希望你的《脸书邮报》被尽可能多的人阅读,你会怎么做?你会增加一个有趣的视觉效果。这个技巧对报告也非常有效。数据驱动的视觉效果吸引更多的注意力,更容易理解,并有助于将您的信息快速传达给受众。在描述性图形和仪表板的帮助下,即使是困难的数据也可以清晰易懂。这是为什么呢?大多数人都是视觉学习者。因此,如果你希望你的大多数合作伙伴、同事和客户能够与你的数据进行交互,你应该把枯燥的图表变成漂亮的图形。基于研究,以下是一些值得注意的数字,它们证实了可视化的重要性:

  • 人们从眼睛中获得 90%的关于他们周围环境的信息。
  • 50%的大脑神经元参与视觉数据处理。
  • 图片增加了 80%阅读文本的愿望。
  • 人们记住他们听到的 10%,他们读到的 20%,他们看到的 80%。
  • 如果包装插页不包含任何插图,人们会记住 70%的信息。添加图片后,他们的记忆率高达 95%。

相关数据可视化为您的企业带来诸多优势:

  • **快速决策。**使用图形可以轻松快速地汇总数据,让您快速看到一个列或接触点比其他列或接触点高,而无需查看 Google Sheets 或 Excel 中的几页统计数据。
  • 更多的人参与进来。大多数人更擅长感知和记忆视觉呈现的信息。
  • 参与程度更高。漂亮明亮的图形和清晰的信息会吸引读者的注意力。
  • 更好地理解数据。完美的报告不仅对技术专家、分析师和数据科学家来说是透明的,对首席营销官和首席执行官来说也是透明的,有助于每一位员工在其职责范围内做出决策。

成功数据可视化的原则

创建任何图形之前要做的第一件事是检查所有数据的准确性和一致性。例如,如果比例因子是 800%,而平均值是 120–130 %,您应该检查这个数字的来源。也许你需要从图表中删除某种异常值,这样就不会扭曲整体画面:800%淡化了 120%和 130%之间的差异。报告中这种无关紧要的数据会导致错误的决策。在现实生活中,我们习惯于这样一个事实:正确的信息应该在正确的时间传递给正确的人。数据可视化有三个相似的原则:

  1. 根据你的目标选择正确的图形。​
  2. 确认你的图片的信息适合观众。
  3. 为图形使用合适的设计。

如果你的信息是及时的,但图形不是动态的,或者有不正确的见解或困难的设计,那么你不会得到你希望的结果。

图表的类型及如何选择

如果你选择了错误的图表,你的读者将会感到困惑或者错误地解释数据。这就是为什么在创建图表之前,确定要可视化的数据及其目的非常重要:

  • 比较不同的数据点
  • 显示数据分布:例如,哪些数据点是频繁的,哪些不是
  • 借助数据显示事物的结构
  • 追踪数据点之间的联系

让我们来看看最受欢迎的图表类型以及它们可以帮助你实现的目标。

1。折线图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

折线图显示一个或多个变量如何在数据点之间变化。这种类型的图表对于比较数据集随时间的变化非常有用,例如,一年内三个登录页面每月的流量统计。

2。条形图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

条形图是另一个非常适合比较数据集的图表。当您需要比较大量数据集或直观地强调其中一个数据集的独特优势时,通常会使用水平条形图。垂直条形图展示了数据点如何随时间变化,例如,公司的年度利润在过去几年中是如何变化的。

3。直方图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

由于直方图和条形图在视觉上的相似性,它们经常被误认为是条形图,但是这些图表的目标是不同的。直方图显示了一个数据集在一个连续的时间间隔或一个确定的时间段内的分布。在这个图表的纵轴上,你可以看到频率,而在横轴上,你可以看到时间间隔。

与柱状图不同,条形图不显示任何连续的区间;每列都显示自己的类别。借助条形图可以更容易地展示不同年份的购买数量。如果您想知道订单价值(10–100 美元、101–200 美元、201–300 美元等)。)的购买量,最好选择直方图。

4。饼状图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

饼图显示数据集中每个值的份额。它用于显示任何数据集的组成部分。例如,每个产品类别占总销售额的百分比是多少?

5。散点图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

散点图显示了数据点之间的联系。例如,在散点图的帮助下,你可以发现转化率如何根据产品折扣的大小而变化。

6。气泡图

这是一个有趣的图表,它允许你通过第三个参数来比较两个参数。让我们把上一个例子中的转换率和折扣大小,加上收入(用圆圈大小表示),我们会得到类似下图的结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

看这个图表,很容易注意到打 7 折的产品转化率最高,而不打折或打 9.5 折的产品带来的收益最多。

7。地理图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

地理图很简单。当您需要展示跨地区、国家和大陆的特定分布时,可以使用它。

我们提到了一些最受欢迎的图表,但不是全部。您可以在数据可视化目录中找到其他类型的图表。此外,我们推荐这张方便的信息图表,它可以帮助你为你的目标选择正确的图表类型。

视觉效果的正确使用

使用数据可视化时,您必须考虑的第二件重要事情是为受众选择正确的信息。你在报告中谈论的数据应该是你的读者所熟悉和清楚的。

这是一张获得了著名的数据新闻奖的图表。对于不熟悉这个故事背景的人来说,这个图表看起来像是一个三岁小孩画的画。然而,当你对它了解得更多一点的时候,你会看到它的作者做了大量的工作。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源: BuzzFeedNews

Buzzfeed 新闻编辑 Charles Seife 和 Peter Aldhous 使用 R 语言将联邦调查局和 DHS 特工作为空中监视的一部分获得的飞行数据可视化。具体来说,这张图表显示了 2015 年 12 月加州圣贝纳迪诺大规模枪击事件负责人的房屋和清真寺上方的航班。

当选择您想要在一个图表上可视化的参数时,您必须确认它们可以组合。有些数据组合就是不符合逻辑,尽管乍一看数据完全相关。这是一个有错误相关性的图表的例子。它表明掉进游泳池淹死的人数与尼古拉斯·凯奇电影的数量相关。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:泰勒维金

创建图表时,接下来要考虑的是比例和范围。人们习惯于这样一个事实,即轴上的测量是从底部和左侧开始的。如果你改变了测量的方向,会让一个不专心的观众感到困惑。尽管我们应该提到,当用作战术机动时,反转测量是可能的,如下例所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源: Omundy

乍看之下,使用枪支的谋杀数量似乎在逐年下降。事实上,它是相反的,因为规模从顶部开始。也许图表的作者故意这样做是为了减少对数据的负面反应。

合适的比例也能让你的图表更清晰。如果报告显示的数据点太近,您看不到任何移动,请尝试更改比例。不要从零开始测量,或者将标尺分成更小的部分,图像会变得清晰。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

在向最终用户提供报告之前,请确保图表加载速度很快。缓慢的加载会扼杀你所有的努力。例如,如果您在 Google Sheets 中可视化数据,您的数据很可能存储在同一页面或下一页面,而不是来自第三方来源。但是当您在 Data Studio 中创建报告时,数据将从其他地方导入。在这种情况下,您必须注意数据源的可访问性和数据流速率。否则,当有一个图表模板但数据尚未加载时,您将会看到一幅令人沮丧的画面。

正确的设计

你的图形设计应该总是遵循简单的原则。如果你必须准备一份标准的报告,就没有必要修饰它。避免任何只会使图表混乱的额外元素:不同的颜色和结构、3D 体积、阴影、渐变等。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

图表越简单,你的读者就越容易理解你想要分享的信息。

不要将可视化效果做得太小,也不要将所有图表放在同一个仪表板页面上。在一张幻灯片或同一个仪表板页面上使用三种以上的图表被认为是不良风格。如果你真的需要这么多图表类型,把它们放在不同的页面上,这样就容易理解了。

不要害怕尝试。如果你有一个非标准的任务,也许你的解决方案也应该是非标准的。在下面的信息图中,我们可以看到不同动物的翅膀运动模式。动态可视化是完全相关的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源: KickstartUtopia

让我们看看数据可视化工具,并讨论如何根据您的目标选择合适的工具。

比较报告软件

现在,市场上有很多数据可视化工具。有些是付费的,有些是免费的。其中一些可以完全在网络上工作,另一些可以安装在桌面上但可以在线工作,还有一些只能离线工作。我们列出了 10 个流行的数据可视化工具:

  1. Excel/Google 电子表格
  2. 数据工作室
  3. 画面
  4. 电源 BI
  5. QlikView
  6. R 工作室
  7. Visual.ly
  8. 纠结
  9. iCharts
  10. 智能数据

前五种工具和服务是由专门从事数据可视化的公司开发的。数字 6 到 10 是非常有趣的工具,大部分是免费的在线工具。它们提供非标准类型的可视化,并可能提供处理数据的新方法。

选择报告工具时要注意什么:

  • **从你想完成的任务开始。**例如,现在市场上的一个主要趋势是动态报告。如果一个工具不能处理动态报告,那就是对它的攻击。
  • **考虑你准备支付的金额。**如果你的团队足够大,每个员工都必须使用可视化工具,那么每个用户的成本可能是一个停止信号。
  • 决定谁将使用该工具以及如何使用。有没有组编辑的可能?开始使用该工具有多简单?界面友好吗?有没有可能在没有任何编程知识的情况下创建一个报表?例如,R Studio 是一个很好的服务,特别是在搜索趋势和建立归因和相关性模型方面。但是如果你不知道任何编程语言,不会连接任何特定的库,也不是技术专家,那么你开始使用 R Studio 将会很困难。

我们选择了五种服务,并准备了一个表格,比较它们的优点、缺点和主要特征。在我们开始之前,让我们解释一下动态数据可视化动态报告有何不同。

动态报告指实时从不同来源导入数据的可能性。谷歌数据工作室没有动态报告。假设我们已经连接了一个来自 Google BigQuery 的 Data Studio 请求,然后更改了这个请求中的一些内容。为了在报告中记录这些变化,我们至少需要刷新 Data Studio 页面。然而,如果在 Google BigQuery 中我们添加或删除了一些字段(不仅仅是改变计算的逻辑,而是改变表的结构),那么 Data Studio 将会关闭报告并显示一个错误。你必须重做它。

动态数据可视化是指在一个会话中查看不同日期的汇总统计数据的可能性。例如,在 Google Analytics 中,您可以更改时间间隔,并获得所需日期的统计数据。

五大可视化工具的关键特征

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们想详细讨论与 OWOX BI 一起使用的三个工具:Google Data Studio、Google Sheets 和 OWOX BI Smart Data。

谷歌数据工作室

Google Data Studio 允许你连接数据源,可视化数据,并以类似于其他 Google 产品的方式轻松地与同事分享报告。

优势:

  • 免费
  • 150 多个易于集成的连接器
  • 可以通过一个仪表板使用来自多个来源的数据
  • 方便共享报告

Google Data Studio 是一个免费工具,有 Google 提供的 17 个原生连接器。它们已经过检查,工作正常,足以完成大多数任务。还有由合作伙伴提供的连接器,尽管您必须理解连接器可以由具有不同技能水平的开发人员提供,并且不能保证它们会正确执行。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

顺便说一下,如果你想在 Data Studio 报告中看到任何脸书或雅虎 Gemini 的统计数据,你可以在 OWOX BI 的帮助下将数据导入 Google BigQuery 。虽然其他连接器可能会忽略一些分析,但使用 BigQuery,您可以从您的脸书帐户接收完整的数据分析

有一个方便的谷歌数据工作室图库,里面有现成的模板

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

OWOX BI 也有现成的仪表板模板。

第一个是营销属性仪表板。在这个仪表板中,您可以找到营销专家和分析师使用的所有基本参数和指标。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

第二个控制面板是数字营销付费渠道 KPI 控制面板,它根据数据源进行划分(详细显示)。换句话说,它显示脸书营销活动的过滤数据等。

这些是演示仪表板。您可以复制它们,更改自己的数据源,并在工作中使用它们。

Data Studio 最近的一次更新增加了按视图过滤数据的可能性。例如,您可以比较当前期间和上一年的数据点。

Data Studio 的另一个有趣的更新是允许您在界面中更改已经创建的图形的类型。以前,更改图表时,您必须删除它并创建一个新的图表。现在可以直接在界面中改变图形样式了。

谷歌工作表

这是最受欢迎的报告工具,任何营销专家都至少使用过一次。Google Sheets 界面非常简单明了,尤其是对于那些开始使用 Excel 进行分析的人来说。

优势:

  • 自由灵活—支持动态参数、数据透视表等
  • 易于与数据源集成
  • 通过链接方便地共享报告

有用的链接:

Google Sheets 中的图表和报表集与 Google Data Studio 中的相同。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

此外,还可以管理颜色和选择单元格格式:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

也许 Google Sheets 的主要优势是数据透视表。最近,Google Data Studio 进行了更新,允许计算三个以上的字段和十列。它让分析师的生活变得更加轻松,尽管 Data Studio 中的可能性仍然有限,而且在 Google Sheets 中使用数据透视表仍然更加舒适。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

谷歌工作表有一个免费的插件,可以让你直接从谷歌分析上传数据,并根据导入的数据生成报告。此外,您可以直接从工作表中请求谷歌分析数据。在这个 GIF 中,您可以看到如何导入数据以及应该设置哪些参数和指标。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

我们想在 Google Sheets 中分享我们最喜欢的报告——群组分析报告。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

这个报告模板可以在这里找到。你可以看到使用的说明和公式。必须填写彩色字段,其他彩色字段在公式的帮助下更新。有大量计算出来的指标,但是这个报告很难,而且需要大量的人力。我们希望这个模板对你有用。此外,您可以在 Google Analytics 和 Google Sheets 中阅读详细的群组分析指南,我们在其中提供了非常详细的说明。

OWOX BI 智能数据

有了 OWOX BI 智能数据,你不需要知道 SQL 语法。用自然语言用简单的英语问一个问题就够了。该服务处理请求,将其翻译成技术语言,并返回一个漂亮的图形和表格,其中包含您的问题的答案。

优势:

  • 不需要特殊的技术培训
  • 快速回答问题
  • 友好的界面
  • 有俄语和英语版本

有一个详细的参考指南,您可以从中了解到您可以在智能数据中创建的每种类型的报告。

智能数据报告使用什么数据

您网站上的用户操作:

交易:

广告活动成本:

收集完所有这些数据后,你就可以开始提问了。我们在 OWOX BI 智能数据中添加了客户需要的所有报告。然后,我们按主题将它们分组,以便于搜索报告。我们有 ROPO 报告,归因报告,注册会计师合作伙伴报告,客户关系管理数据报告,等等。

根据您的数据提出的问题:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

归因问题:

  • 广告渠道、活动和关键词的真正价值是什么?
  • 根据基于漏斗的模型,roa、ROI 和 CRR 是什么?
  • 转化价值(如注册)是如何在渠道和活动中分配的?
  • 根据最后的非直接点击模型,哪些来源具有最大和最小的价值?
  • 哪些活动和关键词在吸引新用户方面表现最佳?
  • 在漏斗的每一步,哪些渠道和活动表现最好?
  • 来源和渠道的哪些行动链导致交易?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

关于 CRM +线上数据的问题:

  • 不同活动的订单执行情况如何不同?
  • 不同渠道组每天的毛利有何不同?
  • 不同城市的 CRM 订单数和 CRM 用户数有什么不同?
  • 按来源和渠道,ROAS 毛利是多少?
  • CRM 订单数量与支付和交付类型之间有什么关系?
  • 换算和平均配送时间、城市有什么关系?
  • CRM 订单、CRM 用户数、店铺之间有什么关系?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

在本参考文献中,您可以找到 CRM 导出的完整数据结构。

注册会计师活动问题:

  • 流量诈骗的来源有哪些?
  • 根据品牌需求购买了多少广告?
  • 哪一个合作伙伴应该为重叠交易的行为支付报酬?
  • CPA 合作伙伴生成的会话质量如何?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

ROPO(线上调研,线下购买)问题:

  • 线上广告对线下购买有什么影响?
  • 什么是真正的 ROPO 购买转换窗口,交易价值和用户做出购买决定的天数之间有什么关系?
  • 在完成线下购买之前,买家、交易和收入是如何按天分配的。
  • 用户需要多少天来决定购买最贵的商品?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由作者提供

这里是 OWOX BI Smart Data 的一个小 FAQ 块,它解决了如何构建请求、结构应该是什么样子、如何显示您想要查看的维度和指标等问题。

对于给定的维度,一次可以选择多少个指标?

智能数据报告不限制您可以使用的指标数量。然而,有了大量的指标,在 Google Data Studio 中可视化数据更加容易。

  • 参考指南中可以找到所有可能的指标和尺寸列表。

如何构建请求,结构应该是什么样子

示例和问题结构可在我们的参考指南中找到:

最好的选择是只输入您想要查看的维度和指标。

这些图表显示的数值是否正确?

智能数据报告基于您的完整数据和现成的 SQL 请求,您可以在 Google BigQuery 项目中复制和检查这些数据和请求。

数据可视化:用 Python 中的图表说出来

原文:https://towardsdatascience.com/data-visualization-say-it-with-charts-in-python-138c77973a56?source=collection_archive---------15-----------------------

使用 matplotlib、pyplot 和 seaborn 的 python 可视化最佳实践和概念的完整实践指南

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

威廉·艾文在 Unsplash 上的照片

商业智能(BI)是一个概念,通常涉及组织中适当且有价值的商业信息的交付和集成。公司使用 BI 来检测重大事件,如深入了解客户行为、监控关键绩效指标以及获取市场和销售情报,以快速适应不断变化的动态业务。可视化是任何 BI 的支柱,因此分析师或数据科学家需要了解可视化的细微差别,以及它如何在有效交流见解和发现方面发挥重要作用。

我们将使用真实世界的数据提出一些商业问题,并了解如何用 Python 创建强大的**、有效的有洞察力的、可视化的 PEI 框架的演示。**

以下是我们将在本文中涉及的五件事:

  • 可视化在分析行业中的重要性
  • 如何决定使用哪个图表
  • python 中 matplotlib 和 seaborn 的介绍和背景
  • 使用 python 的一系列图表和可视化来回答来自真实世界数据的相关问题
  • 使用可视化讲述故事的最佳实践

为什么数据可视化很重要?

数据和分析正在改变竞争的基础。领先的公司不仅利用他们的能力来改善他们的核心业务,还推出全新的商业模式。随着 cxo 不断跟踪不断变化的市场,Topline KPIs(关键绩效指标)正在成为当前的需求,从而使他们能够做出明智的大规模决策。仪表板在利益相关者中变得越来越流行,随着从众多数据源收集的大量数据涌入,可视化成为分析这些数据的关键。简而言之,构建视觉效果的四个主要原因包括:

  1. 对于探索性数据分析,通常称为数据 EDA
  2. 向不同的利益相关方清楚地传达顶层调查结果
  3. 分享数据的无偏表示
  4. 使用可视化来支持发现、见解和建议

在我们开始之前,让我们看一看可视化图表的基础。图表通常分为两大类:

  • 数据图表,也叫定量图表,用图形描绘数字来说明一个点。它们包括饼图、条形图、堆积条形图、散点图、折线图等。
  • 概念图,也叫非量化图表,使用文字和图像。概念图描述了一种情况,如相互作用、相互关系、杠杆作用或工作中的力量。一些常见的例子有流程图、甘特图、矩阵等。

数据图表是分析行业中使用最广泛的图表类型。从仪表板、定期报告到演示文稿,它们在以利益相关方能够理解的方式传达我们的分析方面发挥着重要作用。概念图在咨询和战略概述中起着重要作用,尤其是在逐步概述战略很重要的情况下,或者在需要 SWOT 分析(优势、劣势、机会、威胁)的情况下。

想了解更多关于当前市场上商务智能趋势的信息吗?

** [## 现代分析的黎明——了解商业智能的一些最新趋势…

基于调查的方法来确定每个数据科学家都应该知道的 BI 工具

towardsdatascience.com](/the-dawn-of-modern-analytics-a-look-into-some-of-the-recent-trends-of-business-intelligence-fc12cdf41cae)

图表选择框架

在使用 Excel、Python、R、Tableau、R Shiny、Power BI 或 Qliksense 等平台时,用户会接触到多种引人注目的图表布局。然而,在分析的世界里,创造一个有吸引力的可视化比创造一个有效的可视化更重要。下面是选择框架,它是任何图表选择的基础。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图表选择框架

Python 中的数据可视化简介

Matplotlib 历史和建筑

Matplotlib 是 Python 中使用最广泛的数据可视化库之一。它是由约翰·亨特发明的,他是一名神经生物学家,当时正致力于分析皮层脑电图信号。他的团队可以使用专利软件的授权版本进行分析,并且只能轮流使用。为了避免这种限制,John 开发了一个基于 MATLAB 的版本,在后期阶段配备了一个脚本接口,用于快速轻松地生成图形,目前称为 matplotlib。

Matplotlib 运行在一个三层架构系统上,后端层、艺术家层和脚本层。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Matplotlib 架构

让我们看看下面的代码:

# — — — — — — — — — — — — - Backend Layer, Figure Canvas Layer: Encompases area in which figures are drawn — — — — — — — — — — — — -from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas#— — — — — — — — — — — — -From Artist layer, importing Artist Figure: Artist layer knows how to use a renderer to draw an object----------------------
from matplotlib.figure import Figure
fig=Figure()
canvas=FigureCanvas(fig) #-----passing object of artist layer to backend layer (Figure Canvas)#— — — — — — — — — — — — -Using numpy to create random variables----------------------
import numpy as np
x=np.random.rand(100)#— — — — — — — — — — — — -Plotting a histogram---------------------
ax=fig.add_subplot(111)
ax.hist(x,100)
ax.set_title('Normal Distribution')
fig.savefig('matplotlib_histogram.png')

我们可以看到,要使用后端和艺术家层的组合绘制随机数直方图,我们需要处理多行代码片段。为了减少这种工作,Matplotlib 引入了名为 Pyplot 的脚本层。

“matplotlib.pyplot” 是命令风格函数的集合,使 matplotlib 像 MATLAB 一样工作。每个 pyplot 函数对图形进行一些改变,例如,创建图形,在图形中创建绘图区域,在绘图区域中绘制一些线,用标签装饰绘图,等等。在 matplotlib.pyplot 中,各种状态在函数调用中被保存,这样它可以跟踪诸如当前图形和绘图区域之类的东西,并且绘图函数指向当前轴。

import matplotlib.pyplot as plt#— — — — — — — — — — — — -Using numpy to create random variables----------------------
import numpy as np
x=np.random.rand(100)plt.hist(x,100) #-----100 refers to the number of binsplt.title(‘Normal distribution Graph’)
plt.xlabel(‘Random numbers generated’)
plt.ylabel(‘Density’)
plt.show()

同样的输出可以通过 pyplot 使用更少的代码行直接生成。

让我们看看下面的例子,以了解我们如何使用 python 中的 matplotlib 和 pyplot 创建不同的绘图。我们将使用来自 Kaggle 的自杀率概览数据来绘制上面讨论的一些图表。

#— — — — — — — — — — — — -Reading dataset — — — — — — — — — — — -
import pandas as pdsuicide_data=pd.read_csv(‘C:/Users/91905/Desktop/master.csv’)suicide_data.head()#We can summarize data by multiple columns like country, year, age, #generation etc. For the sake of simplicity we will try and the #answer the following questions#1\. How total suicide number in the globe changed with time#2\. Total suicides by gender and age bucket separately#3\. Total suicides by gender across age buckets#4\. Proportion of suicides by generation#5\. Distribution of suicides till date using box plot and histogram#— — — — — — — — — — — — -Since data is at different levels, we will try and summarize the data by year, --------------
#— — — — — — — — — — — — -sex, age, sex+age and generation--------------year_summary=suicide_data.groupby('year').agg(tot_suicide=('suicides_no','sum')).sort_values(by='year',ascending=True)gender_summary=suicide_data.groupby('sex').agg(tot_suicide=('suicides_no','sum')).sort_values(by='sex',ascending=True)age_summary=suicide_data.groupby('age').agg(tot_suicide=('suicides_no','sum')).sort_values(by='tot_suicide',ascending=True)#— — — — — — — — — — — — -Line Graph to see the trend over years-----------------import matplotlib.pyplot as plt
import numpy as np%matplotlib inlineyear_summary.plot(kind='line', figsize=(10,6));
plt.title('Summary of Suicides by Year');
plt.xlabel('Year');
plt.ylabel('#Suicides');#— — — — — — — — — — — — -Bar graph to compare suicides by gender and age-------------
gender_summary.plot(kind='bar', figsize=(10,6));
plt.title('Summary of Suicides by Gender');
plt.xlabel('Sex');
plt.ylabel('#Suicides');age_summary.plot(kind='bar', figsize=(10,6));
plt.title('Summary of Suicides by Age');
plt.xlabel('Age');
plt.ylabel('#Suicides');#— — — — — — — — — — — — -Total suicides by age and gender together----
gender_age_summary=suicide_data.groupby(['sex','age']).agg(tot_suicide=('suicides_no','sum')).unstack()
gender_age_summary.head()gender_age_summary.plot(kind='bar', figsize=(10,6), stacked=True);
plt.title('Summary of Suicides by Genger & Age');
plt.xlabel('Age');
plt.ylabel('#Suicides');#— — — — — — — — — — — — -Proportion of Suicide by Generation— — — — — — — — — — — — -
generation_summary=suicide_data.groupby('generation').agg(tot_suicide=('suicides_no','sum')).sort_values(by='tot_suicide',ascending=False).reset_index()
generation_summary.head(10)#— — — — — — — — — — — — -Plotting pie chart— — — — — — — — — — — — -
fig1, ax1 = plt.subplots();
fig1.set_size_inches(8,6)ax1.pie(generation_summary['tot_suicide'],labels=generation_summary['generation'],autopct='%1.0f%%',shadow=True);
ax1.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.
plt.title('% Suicides across Generation')
plt.show();#— — — — — — — — — — — — -Histogram Plot— — — — — — — — — — — — -
year_summary.plot(kind='box', figsize=(10,6)); #----------To plot histogram change kind='box' to kind='hist'
plt.title('Distribution of suicide figures');

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

基于 Matplotlib 和 Pyplot 的自杀数据可视化

海生的

Seaborn 是一个基于 matplotlib 的 Python 数据可视化库。它提供了一个高层次的界面来绘制有吸引力的和信息丰富的统计图形。Seaborn 通常以统计数据可视化为目标,但提供更智能和增强的布局。

有用提示—在使用 seaborn 功能之前,使用 sns.set(color_codes=True)。这为你的可视化添加了一个很好的背景。

让我们尝试使用 Seaborn 重新创建上面的图表

import seaborn as snssns.set(color_codes=True)#— — — — — — — — — — — — -Suicides by year--------------------------
year_summary=suicide_data.groupby('year').agg(tot_suicide=('suicides_no','sum')).sort_values \
                                    (by='year',ascending=True).reset_index()
year_summary.head()#— — — — — — — — — — — — -Using Seaborn to plot trend of suicide with time-------------------------------
fig, ax = plt.subplots(figsize=(10,6));
plt.title('#Suicides across Years')
sns.lineplot(year_summary['year'],year_summary['tot_suicide']);#— — — — — — — — — — — — -Summary by Gender------------------------------------------
gender_summary=suicide_data.groupby('sex').agg(tot_suicide=('suicides_no','sum')).sort_values(by='sex',ascending=True).reset_index()fig, ax = plt.subplots(figsize=(10,6));
plt.title('#Suicides across Years')ax=sns.barplot(gender_summary['sex'],gender_summary['tot_suicide']);
ax.set(xlabel='Gender', ylabel='#Suicides');
plt.show()#— — — — — — — — — — — — -Summary by Gender/age------------------------------------------
gender_age_summary=suicide_data.groupby(['sex','age']).agg(tot_suicide=('suicides_no','sum')).reset_index()
gender_age_summary.head()fig, ax = plt.subplots(figsize=(10,6));
plt.title('#Suicides across Years')ax=sns.barplot(x=gender_age_summary['sex'],y=gender_age_summary['tot_suicide'],hue=gender_age_summary['age']);
ax.set(xlabel='Gender', ylabel='#Suicides');
plt.show()gender_age_summary1=suicide_data.groupby(['sex','age']).agg(tot_suicide=('suicides_no','sum')).unstack()
gender_age_summary1.head()#— — — — — — — — — — — — -Stack bar--------------------------------
sns.set()
gender_age_summary1.plot(kind='bar', stacked=True)#— — — — — — — — — — — — -Checking correlation between suicide, population and gdp per capita
sns.pairplot(suicide_data[['suicides_no', 'population', 'gdp_per_capita ($)']], size=4, aspect=1);#— — — — — — — — — — — — -Boxplot— — — — — — — — — — — — -
sns.boxplot(gender_age_summary['sex'],gender_age_summary['tot_suicide']);

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用 Seaborn 的自杀数据可视化

使用可视化讲述故事的最佳实践

以下是创建演示文稿或可视化效果时应该遵循的一些最佳实践:

  1. 明确定义问题陈述,并使用自上而下的方法将其分解为多个假设。在上述案例研究中,问题陈述包括了解不同国家的自杀率以及影响自杀率的因素。因此,在进入可视化之前,列出所有可能影响自杀率的因素,例如,年龄、性别、GDP、人口、增长、世代等等。
  2. 确定可能给你的故事增加价值的关键因素。想一想这些因素是如何相互联系的,以便对正在发生的事情有一个更全面的了解。不要按年龄和性别分别看自杀率,试着比较两组的自杀率。你可以得到高质量的见解,比如,年龄在 18 到 25 岁之间的男性自杀率更高
  3. 一旦你决定了因素,确保你使用图表选择框架来决定哪个图表最适合
  4. 确保所有图表格式的一致性,包括颜色、文本大小、标题大小、轴间距、图例位置和图表对象的对齐
  5. 在每一个图像下面都有一些发现;这将帮助你为你的利益相关者拼凑一个故事

数据科学行业的新手?这里有一些提示和窍门供你开始!

[## 对于数据科学的工作,你的编码技能够好吗?

5 编码嗅探如果你在数据科学行业工作,你必须知道

towardsdatascience.com](/are-your-coding-skills-good-enough-for-a-data-science-job-49af101457aa) [## 我不能在 10 天内教你数据科学

理解数据科学空间中的实体和需求的案例研究方法

towardsdatascience.com](/i-cant-teach-you-data-science-in-10-days-f3beeb099b60)

关于作者:高级分析专家和管理顾问,帮助公司通过对组织数据的商业、技术和数学的组合找到各种问题的解决方案。一个数据科学爱好者,在这里分享、学习、贡献;你可以和我在 上联系 上推特**

使用熊猫散景的数据可视化

原文:https://towardsdatascience.com/data-visualization-using-pandas-bokeh-109240770fd3?source=collection_archive---------38-----------------------

为熊猫数据帧创建令人惊叹的可视化效果

探索性数据分析是理解和建立有效的 ML 模型的基础。数据可视化是 EDA 的一个关键部分,有许多工具可用于此。Bokeh 是一个交互式可视化库。它提供了直观和通用的图形。散景有助于快速轻松地制作交互式绘图和仪表盘。熊猫散景为熊猫提供了一个散景绘图后端。

将熊猫散景与您的 Python 代码集成非常简单。你只需要安装并导入 pandas-bokeh 库,然后你就可以像使用其他可视化工具一样使用它了。你应该在导入熊猫后导入熊猫-散景库。使用以下命令下载并导入 pandas-bokeh 库:

*#Load the pandas_bokeh library*

!pip install pandas_bokehimport pandas as pd
import pandas_bokeh

您可以将打印输出设置为 HTML 或笔记本。使用命令**pandas _ bokeh . output _ notebook()将输出设置为 notebook。这将在笔记本单元格中嵌入情节。使用命令pandas _ bokeh . output _ file(filename)**将输出显示为 HTML 文件。

您可以使用命令 df.plot_bokeh() 轻松绘制 Pandas 数据帧。熊猫散景提供了各种各样的绘图选项,如线,分散,酒吧,直方图,面积,地图绘图,步骤,点,饼图。所有的情节都是互动的,可平移的,可缩放的。下面是一些流行的可视化代码的例子,使用数据分析中常用的 pandas_bokeh 绘制。

柱状图

*#Vertical barchart*
carhpbot.plot_bokeh(
    kind="bar",
    figsize =(1000,800),
    x="name",
    xlabel="Car Models", 
    title="Bottom 10 Car Features", 
    alpha=0.6,
    legend = "top_right",
    show_figure=True)

*#Stacked vertical bar*
carhpbot.plot_bokeh.bar(
    figsize =(1000,800),
    x="name",
    stacked=True,
    xlabel="Car Models", 
    title="Bottom 10 Car Features", 
    alpha=0.6,
    legend = "top_right",
    show_figure=True)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

条形图

线条图

iris.plot_bokeh(
    kind='line',
    x='species',
    y=['sepal_length', 'sepal_width','petal_length','petal_width'],
    xlabel='Species',
    ylabel='Length and Width',
    title='Flowers',
)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

直方图

iris.plot_bokeh(kind="hist",title ="Iris feature distribution",
                   figsize =(1000,800),
                   xlabel = "Features",
                   ylabel="Measure"
                )

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

柱状图

散点图

car.plot_bokeh.scatter(
    x='horsepower', 
    y=['weight'],
    figsize=(1000, 700),
    zooming=False,
    panning=False
)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

地图地块

mapplot["size"] = mapplot["pop_max"] / 1000000
mapplot.plot_bokeh.map(
    x="longitude",
    y="latitude",
    hovertool_string="""<h2> @**{name}** </h2> 

                        <h3> Population: @**{pop_max}** </h3>""",
    tile_provider="STAMEN_TERRAIN_RETINA",
    size="size", 
    figsize=(1200, 600),
    title="Cities with more than 1000K population")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

地图绘图

面积图

carhp.plot_bokeh.area(
    x="name",
    stacked=True,
    figsize=(1300, 700),
    title="Compare Car Models",
    xlabel="Top 10 Car models",
    )

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这些是使用 pandas_bokeh 绘制的一些基本图。这些图中的每一个都可以使用各种可选参数进一步增强。熊猫博客提供了一个精彩的 GitHub 库用一些很棒的例子解释了所有的情节。我上面展示的例子都可以在我的 Kaggle 笔记本的数据集中找到。

使用 Plotly 的统计图进行数据可视化

原文:https://towardsdatascience.com/data-visualization-using-statistical-charts-by-plotly-e730c27de1fd?source=collection_archive---------49-----------------------

统计图表类型和使用 Plotly 绘图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

斯蒂芬·道森在 Unsplash 上拍摄的照片

数据可视化在数据分析中起着重要的作用,因为只要人眼看到一些图表或图形,他们就会试图在该图形中找到模式。

数据可视化是使用不同的图/图形/图表直观地表示数据,以找出模式、异常值以及数据集不同属性之间的关系。它是数据的图形表示。

统计数据分析是执行各种统计操作的过程。它是一种定量研究,即对数据进行研究,以找出数据的统计特性。

Python 为可视化提供了不同的库/包,如 Matplotlib、Seaborn、ggplot 等。但我个人最喜欢的是 Plotly ,因为它不仅帮助我们可视化数据,还创建了高度互动和视觉上吸引人的图表/条形图/曲线图等。

在本文中,我们将讨论最重要的统计图表,并将创建和可视化它们。

箱线图

箱线图帮助我们可视化数据及其四分位数,箱线图的主要好处之一是我们可以清楚地识别异常值。让我们绘制一个箱线图,这里使用的数据集是一个汽车设计数据集,它包含汽车制造公司的不同属性。

import pandas as pd
import plotly.express as pxdf = pd.read_csv('car_design.csv')fig = px.box(df, x="body-style", y="price")
fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

箱线图(异常值清晰可见)

直方图

直方图用于确定数据的近似分布。在直方图中,创建不同的箱,并表示每个箱的计数。直方图基于面积,而不是条形的高度。在直方图中,它是指示每个条柱出现频率的条形区域。

fig = px.histogram(df, x="city-mpg")
fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

代表不同数据仓的直方图。

热图

热图是数据的二维图形表示,表示不同数据属性之间的相关性,并根据颜色进行区分。

fig = px.density_heatmap(df.corr())
fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

热图

散点图

散点图是一种可视化形式,其中点用于显示数据集中两个变量的不同值。它用于找出两个变量之间的关系。

fig = px.scatter(df, x="city-mpg", y="highway-mpg", trendline="ols")
fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

散点图显示了强相关性

小提琴情节

小提琴图是数字数据的统计表示。它类似于一个箱形图,在每一侧增加了一个旋转的核密度图。

fig = px.violin(df, y="price")
fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用小提琴图的价格分布

2D 密度等高线

2D 密度图或 2D 直方图是众所周知的直方图的扩展。它显示了数据集中的值在两个定量变量范围内的分布。避免在散点图中过度绘制非常有用。

fig = px.density_contour(df, x="city-mpg", y="highway-mpg", marginal_x="histogram", marginal_y="histogram")
fig.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2D 密度等值线图

在本文中,我们看到了不同的统计图,以及如何使用 Plotly 绘制它们,Plotly 是一个用于可视化的 python 库。

这些图将为您提供统计数据可视化背后的基本概念,您可以相应地更改参数,并根据您的要求可视化数据。

[## 在 Python 中使用 Pandas Profiling、Sweetviz 和 Autoviz 实现 EDA 自动化的技巧

探索性数据分析(EDA)用于探索我们正在处理的数据的不同方面。应该执行…

analyticsindiamag.com](https://analyticsindiamag.com/tips-for-automating-eda-using-pandas-profiling-sweetviz-and-autoviz-in-python/) [## 下载股票数据并直观地展示出来

使用 YFinance 和 Plotly 库进行股票数据分析

towardsdatascience.com](/downloading-stock-data-and-representing-it-visually-6433f7938f98) [## sweet viz:Python 中的自动化 EDA

使用 Sweetviz python 库进行探索性数据分析

towardsdatascience.com](/sweetviz-automated-eda-in-python-a97e4cabacde)

在你走之前

感谢 的阅读!如果你想与我取得联系,请随时通过 hmix13@gmail.com 联系我或我的 LinkedIn 个人资料 您也可以在我的*Github中查看我在这里使用的代码和数据。*

使用 Streamlit 实现数据可视化

原文:https://towardsdatascience.com/data-visualization-using-streamlit-151f4c85c79a?source=collection_archive---------6-----------------------

Streamlit 简介

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

卢克·切瑟在 Unsplash 上的照片

喜欢、分享、订阅频道- HackerShrine

最近,我遇到了一个开源框架— Streamlit ,它是用来创建数据应用的。所以我花了一些时间在文档上,并在一个粮食需求预测数据集上做了一些数据可视化。

Streamlit 的开源应用框架是数据科学家和机器学习工程师在几个小时内创建漂亮、高性能应用的最简单方式!全是纯 Python。全部免费。

—流线型

要开始,只需键入以下命令:

pip install streamlit

要检查它是否安装正确,请运行以下命令:

streamlit hello

如果这出现在您的浏览器上,则 streamlit 已安装并正常工作!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在我们将使用上面链接中提供的数据集绘制一些简单的图表。

首先导入必要的库并给出一个标题。

import streamlit as st
import pandas as pd
import numpy as np
import plotly.figure_factory as ff
import matplotlib.pyplot as pltst.title(‘Food Demand Forecasting — Analytics Vidhya’)

在数据集中,您将看到 3 个 csv 文件,我们现在将使用 pandas 导入这些文件。@st.cache 在这里对于流畅快速的运行是相当重要的。在这里详细阅读

[@st](http://twitter.com/st).cache
def load_data(nrows):
    data = pd.read_csv('train.csv', nrows=nrows)
    return data[@st](http://twitter.com/st).cache
def load_center_data(nrows):
    data = pd.read_csv('fulfilment_center_info.csv',nrows=nrows)
    return data[@st](http://twitter.com/st).cache
def load_meal_data(nrows):
    data = pd.read_csv('meal_info.csv',nrows=nrows)
    return data

现在让我们调用这些函数。我现在只取 1000 行,你可以取整个数据集。

data_load_state = st.text('Loading data...')
weekly_data = load_data(1000)
center_info_data = load_center_data(1000)
meal_data = load_meal_data(1000)

首先我们来看一下 周需求数据 。我们将绘制条形图,直方图,折线图和面积图。

条形图

st.subheader(‘Weekly Demand Data’)
st.write(weekly_data)#Bar Chart
st.bar_chart(weekly_data[‘num_orders’])

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

直方图

#histogram
df = pd.DataFrame(weekly_data[:200], columns = [‘num_orders’,’checkout_price’,’base_price’])
df.hist()
plt.show()
st.pyplot()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

折线图

#Line Chart
st.line_chart(df)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

面积图

chart_data = pd.DataFrame(weekly_data[:40], columns=[‘num_orders’, ‘base_price’])
st.area_chart(chart_data)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们拥有的下一个 csv 文件属于 履行信息中心。

为了显示 csv 文件中的原始数据,我添加了一个复选框,当它被选中时,就会显示原始数据。Streamlit 提供了简单而优雅的语法,如下所示。

st.subheader(‘Fulfillment Center Information’)
if st.checkbox(‘Show Center Information data’):
    st.subheader(‘Center Information data’)
    st.write(center_info_data)
#st.write(center_info_data)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

以类似于每周需求数据的方式绘制区域代码和中心类型的条形图。

st.bar_chart(center_info_data[‘region_code’])
st.bar_chart(center_info_data[‘center_type’])

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

接下来,我们将使用 plotly 查看配送区域代码和中心 id。

hist_data = [center_info_data[‘center_id’],center_info_data[‘region_code’]]
group_labels = [‘Center Id’, ‘Region Code’]
fig = ff.create_distplot(hist_data, group_labels, bin_size=[10, 25])
st.plotly_chart(fig, use_container_width=True)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们拥有的最后一个 csv 文件是膳食数据,让我们也显示它的原始数据。

st.subheader('Meal Information')
st.write(meal_data)

这里绘制了一个简单的 cusine 柱条形图。

st.bar_chart(meal_data[‘cuisine’])

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后创建按钮,点击该按钮将显示餐饮类别数量的条形图。这可以通过编写以下代码来实现:

agree = st.button(‘Click to see Categories of Meal’)
if agree:
 st.bar_chart(meal_data[‘category’])

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

要运行您的 streamlit 应用程序,只需键入以下命令:

streamlit run appname.py

这将打开一个浏览器,你可以看到所有的可视化。

这是我电脑上的一个屏幕录像。

[## Aniket Wattamwar 在 LinkedIn 上发帖

最近,我偶然发现了一个开源框架 Streamlit。所以,我花了一些时间在文档上,做了一些…

www.linkedin.com](https://www.linkedin.com/posts/aniket-wattamwar-0a6658139_machinelearning-python-streamlit-activity-6699267657994162176-psWO)

你可以在我的 G itHub 上找到完整的代码。你也可以在其他平台上和我联系——Linktree

谢谢你。

和平。

使用 ggplot2 实现数据可视化

原文:https://towardsdatascience.com/data-visualization-with-ggplot2-db04c4956236?source=collection_archive---------10-----------------------

实践教程

R 语言中的“图形语法”一瞥

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自 Pixabay大卫·马克的图片

r 编程

编程已经成为最好的数据分析工具之一,尤其是在可视化分析方面。一个伟大的社区贡献使得学习、使用和分享有效的可视化变得更加容易。必须指出,适当的可视化对于数据科学家&人工智能专家来说是一个非常重要的因素。即使您只对具有影响力的可视化的业务通信感兴趣,R 也可以为您提供一种全面的工作方式,在这种方式下,您可以充分自由地处理数据并为您的受众创建有用的图表。顺便说一下,它是一个开源工具。RStudio 是最适合 r 的 IDE(集成开发环境)。

ggplot2

gg plot 2是 R 社区最流行的数据可视化包。它是由哈德利·威克姆在 2005 年创立的。它是基于 Leland Wilkinson 的 图形语法 实现的——这是一种数据可视化的通用方案,它将图形分解为比例和层等语义组件。在使用 ggplot2 的时候,你提供数据,调用特定的函数,将你想要的变量映射到美学,定义图形参数,剩下的就交给它了!具体可以去翻翻它的文档

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片来源:潮汐ggplot2

tidyverse

tidy verse是同一位 Hadley Wickham 推出的数据科学软件包集合。***【tidy verse】*封装了“*gg plot 2”***以及其他用于数据争论和数据发现的包。更多细节可在其文档中找到。

安装软件包

让我们先安装所需的软件包。您不需要在我们的系统中多次安装任何软件包,除非您愿意升级它。注意:如果安装*,那么就不需要单独安装 ggplot2 !*

***# install.packages('ggplot2')
install.packages('tidyverse')
install.packages("ggalt")
install.packages('GGally')
install.packages('ggridges')***
  • 反转所有地块**
  • ggalt哑铃剧情**
  • GGallyfor散点图**
  • 为*垄*

加载包

现在我们需要加载我们的包。与安装不同,每次启动系统时都需要加载软件包。

***library(tidyverse)
library(ggalt)
library(GGally)
library(ggridges)***

探索数据集

在本练习中,我们将使用四个数据集。其中两个是标准数据集,在世界范围内用于实践数据可视化。这些是 虹膜钻石 数据集。另外两个是为此工作目的专门策划的数据集。 names.csv 有 1880 年到 2017 年这几年三个女性名字的使用数据,life _ expect ency . CSV包含了 15 个国家 1967 年和 2007 年的预期寿命。请从我的 github 库或者从 google drive 下载这两个数据集,看哪个方便。注意:所有这些数据集都是开源的。

现在,让我们导入数据集

***data_iris <- iris
data_diamonds <- diamonds**setwd("E:**/**---**/**your_working-directory")
**data_names <- read.csv("names.csv", header = TRUE)
data_life_exp <- read.csv("life_expectency.csv", header = TRUE)***

这里有三个检查导入数据的选项,

***View(data_iris)***

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

***head(data_iris)***

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

***glimpse(data_iris)***

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

关于功能

*我们将使用 ggplot2 包中的几个函数。这些函数一起工作,产生所需的图形。每个 ggplot2 图形都以函数**ggplot()** 开始。它基本上创建了坐标系。在此之上添加图形层。该函数的第一个参数是目标图的输入数据集。然后是 geom 功能,根据其 geom**geom_point****geom_line****geom_bar**等,在坐标系上添加标绘图层。每个几何函数都需要一个 T4 参数。这定义了数据集中的变量如何映射到可视化属性。美学函数**aes()**被分配给**mapping**自变量。aes()函数的主要参数是轴增量- **x****y**和微分参数,如**color****size****fill****alpha**。当区别参数被放在aes()函数之外时,它们就变成了共同特征参数。**ggtitle()****xlab()****ylab()****theme()**这些功能用于标签和专题属性。 : 通过执行 ***命令,可以在帮助选项卡中找到这些功能的详细信息?**function _ name,像**?geom_point**

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

这些功能可以组织在下面的模板中

***ggplot(data = <DATA>) + 
  <GEOM_FUNCTION>(mapping = aes(<MAPPINGS>))****ggplot(<DATA>) + 
  <GEOM_FUNCTION>(aes(<MAPPINGS>))****ggplot(data = <DATA> , mapping = aes(<MAPPINGS>)) + 
  <GEOM_FUNCTION>()****ggplot(<DATA> , aes(<MAPPINGS>)) + 
  <GEOM_FUNCTION>()***

散点图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Gábor JuhászUnsplash 上拍摄

数据集- 虹膜

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

基本散点图

***ggplot(data_iris) +
  geom_point(aes(x = Sepal.Length , y = Sepal.Width),
             color = 'blue', size = 4, pch = 19) +**

  ggtitle("Basic Scatter Plot", subtitle = "iris") +
  xlab("SEPAL LENGTH") +
  ylab("SEPAL WIDTH") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold.italic', 
                                   color = 'darkgreen',
                                   size = 10, angle = 0),
        axis.text.y = element_text(face = 'bold', 
                                   color = 'blue',
                                   size = 10, angle = 45))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

散点图,通过颜色区分特征&形状

***ggplot(data_iris) +
  geom_point(aes(x = Sepal.Length , y = Sepal.Width,
                 *color = Species, shape = Species*), size = 4) +**

  ggtitle("Scatter Plot with feature differentiation - 1") +
  xlab("SEPAL LENGTH") +
  ylab("SEPAL WIDTH") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold.italic', 
                                   color = 'darkgreen',
                                   size = 10, angle = 0),
        axis.text.y = element_text(face = 'bold', 
                                   color = 'blue',
                                   size = 10, angle = 45))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

散点图,按尺寸区分特征&透明度

***ggplot(data_iris) +
  geom_point(aes(x = Sepal.Length , y = Sepal.Width,
                 *size = Petal.Width, alpha = Petal.Length*)) +**

  ggtitle("Scatter Plot with feature differentiation - 2") +
  xlab("SEPAL LENGTH") +
  ylab("SEPAL WIDTH") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold.italic', 
                                   color = 'darkgreen',
                                   size = 10, angle = 0),
        axis.text.y = element_text(face = 'bold', 
                                   color = 'blue',
                                   size = 10, angle = 45))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

线形图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

艾玛·露易丝·科默福德在 Unsplash 上拍摄的照片

数据集- 名称

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

基本线条图

***ggplot(data_names %>% filter(name == 'Helen')) +
  geom_line(aes(x = year, y = n), 
            lwd = 1.25, color = 'darkgreen') +**

  ggtitle("Basic Line Plot", subtitle = "name - Helen") +
  xlab("YEAR") +
  ylab("NUMBER") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

根据颜色和线型区分特征的线图

***ggplot(data_names) +
  geom_line(aes(x = year, y = n, 
                *color = name, lty = nam*e), lwd = 1.25) +**

  ggtitle("Line Plot with feature differentiation") +
  xlab("YEAR") +
  ylab("NUMBER") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

条形图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由所有邦Unsplash 上拍摄

数据集- 钻石

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

基本条形图

**as.data.frame(table(data_diamonds$cut))* **ggplot(as.data.frame(table(data_diamonds$cut))) +
  geom_bar(aes(*x = Var1, y = Freq*), 
           *stat = 'identity'*, fill = 'darkgreen') +**

  ggtitle("Basic Bar Plot") +
  xlab("CUT") +
  ylab("COUNT") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

极坐标变换的基本条形图

**as.data.frame(table(data_diamonds$cut))* **ggplot(as.data.frame(table(data_diamonds$cut))) +
  geom_bar(aes(*x = Var1, y = Freq, fill = Var1*), 
           *stat = 'identity'*) +**

  ggtitle("Bar Plot with polar transformation") +
  xlab("CUT") +
  ylab("COUNT") + **coord_polar("y") +** theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

基本条形图- 2

***ggplot(*data_diamonds*) +
  geom_bar(aes(x = cut, fill = cut),
           color = 'lightblue') +**

  ggtitle("Basic Bar Plot - 2") +
  xlab("CUT") +
  ylab("COUNT") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

堆积条形图

***ggplot(data_diamonds) +
  geom_bar(aes(x = cut, *fill = clarity*), 
           color = 'lightblue') +**

  ggtitle("Stacked Bar Plot") +
  xlab("CUT") +
  ylab("COUNT") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

相同高度的堆积条形图

***ggplot(data_diamonds) +
  geom_bar(aes(x = cut, fill = clarity), *position = 'fill*') +**

  ggtitle("Stacked Bar Plot (same height)") +
  xlab("CUT") +
  ylab("COUNT") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

分组条形图

***ggplot(data_diamonds) +
  geom_bar(aes(x = cut, fill = clarity), *position = 'dodge'*) +**

  ggtitle("Grouped Bar Plot") +
  xlab("CUT") +
  ylab("COUNT") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

带极坐标变换的堆积条形图

***ggplot(data_diamonds) +
  geom_bar(aes(x = cut, fill = clarity)) +**

  ggtitle("Stacked Polar (1)") +
  xlab("CUT") +
  ylab("COUNT") +
 **coord_polar("y") +**

  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

带极坐标变换的堆积条形图- 2

***ggplot(data_diamonds) +
  geom_bar(aes(x = cut, fill = clarity)) +**

  ggtitle("Stacked Polar (2)") +
  xlab("CUT") +
  ylab("COUNT") +

  **coord_polar() +**

  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

瓷砖图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由工作保存器Unsplash 上拍摄

数据集- 钻石

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

**as.data.frame(table(data_diamonds$cut, data_diamonds$color))*
**ggplot(as.data.frame(table(data_diamonds$cut, 
                           data_diamonds$color))) +
  geom_tile(aes(x = Var1, y = Var2, fill = Freq)) +
 *geom_text(aes(x = Var1, y = Var2, label = Freq), 
            color = "yellow") +***

  ggtitle("Tiles Plot") +
  xlab("CUT") +
  ylab("COLOR") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

哑铃图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Anastase MaragosUnsplash 上拍摄

数据集-life _ exp

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

***ggplot(data_life_exp) +
  geom_dumbbell(aes(x = Y1967, *xend = Y2007*, 
                    y = country, *group = country*),
                *colour* = 'grey', size = 4,
                *colour*_x = 'green', *colour*_xend = 'blue') +**

  ggtitle("Dumbbell Plot (Life Expenctancy 1967 ~ 2007)") +
  xlab('YEAR') +
  ylab('COUNTRY') +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

散布矩阵图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由维克多·福加斯Unsplash 上拍摄

数据集- 虹膜

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

基本散点图矩阵图

***ggpairs(data_iris[ , 1:4]) +**
  theme_bw()*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

具有特征差异的散点图

***ggpairs(data_iris, aes(color = Species)) +**
  theme_bw()*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

柱状图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Clarisse MeyerUnsplash 上拍摄的照片

数据集-钻石

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

基本直方图

***ggplot(data_diamonds) +
  geom_histogram(aes(x = price), fill = 'blue', 
                 color = "lightblue", binwidth = 500)+**

  ggtitle("Basic Histogram") +
  xlab("PRICE") +
  ylab("Frequency") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

堆积直方图

***ggplot(data_diamonds) +
  geom_histogram(aes(x = price, *fill = cut*), 
                 color = "lightblue", binwidth = 500)+**

  ggtitle("Stacked Histogram") +
  xlab("PRICE") +
  ylab("Frequency") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

密度图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由塞拉斯·拜施Unsplash 上拍摄

数据集- 钻石

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

***ggplot(data_diamonds) +
  geom_density(aes(x = carat, 
                   fill = cut), alpha = 0.7)+**

  ggtitle("Density Plot") +
  xlab("PRICE") +
  ylab("Density") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

箱形图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

CHUTTERSNAPUnsplash 上拍照

数据集-钻石

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

基本方框图

***ggplot(data_diamonds) +
  geom_boxplot(aes(x = cut, y = carat, fill = cut)) +**

  ggtitle("Basic Box Plot") +
  xlab("CUT") +
  ylab("CARAT") +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

分组方框图

***ggplot(data_diamonds) +
  geom_boxplot(aes(x = cut, y = carat, *fill = clarity*)) +**

  ggtitle("Grouped Box Plot") +
  xlab("CUT") +
  ylab("CARAT) +
  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

带极坐标变换的箱形图

***ggplot(data_diamonds) +
  geom_boxplot(aes(x = color, y = price, fill = color)) +**

  ggtitle("Box Plot with polar transform") + **coord_polar("y") +**

  theme_bw() +
  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

小提琴情节

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由 Elijah M. HendersonUnsplash 上拍摄

数据集- 钻石

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

***ggplot(data_diamonds) +
  geom_violin(aes(x = cut , y = carat, fill = cut)) +**

  ggtitle("Violin Plot") +
  xlab("CUT") +
  ylab("CARAT") +
  theme_bw() +

  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者的意象

山脊图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

保罗·厄尔在 Unsplash 上的照片

数据集- 钻石

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

***ggplot(data_diamonds) +
  geom_density_ridges(aes(x = carat , y = cut, 
                          fill = clarity), alpha = 0.7) +** 
  ggtitle("Ridge Plot") +
  xlab("PRICE") +
  ylab("CUT") +
  theme_bw() +

  theme(axis.text.x = element_text(face = 'bold', size = 10),
        axis.text.y = element_text(face = 'bold', size = 10))*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

我相信你会发现这篇文章非常有帮助,我建议你用自己的数据集进一步练习这些图表。这可能是视觉分析和您迈向数据科学之旅的良好开端!!**

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Chirag SainiUnsplash 上拍摄的照片

** [## 艾哈迈德叶海亚哈立德-经理,企业计划管理- EPMO,企业战略-机器人…

打破数据、战略、规划和执行之间的孤岛!这个简介是一个技术和人工智能专业人士目前…

www.linkedin.com](https://www.linkedin.com/in/aykhaled/)**

用 Julia 和 VSCode 实现数据可视化

原文:https://towardsdatascience.com/data-visualization-with-julia-and-vscode-168a69f7ddf8?source=collection_archive---------12-----------------------

使用 Julia 和免费的 VSCode IDE,您可以用很少的编程知识制作令人印象深刻的数据可视化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

除了茱莉亚语言标志外,所有图片均由 julialang.org 阿兰·琼斯创作

不久前,我写了一篇关于使用 Julia 和一个叫做 JuliaBox 的在线环境进行数据可视化的文章。当时 JuliaBox 是一项免费服务;不幸的是,它已被撤回。这是一个耻辱,因为它是一个伟大的服务。

因此,这篇文章的新版本使用了微软的 VSCode IDE(它不仅是免费的,而且也不太可能很快消失)。你需要安装 VSCode,Julia 语言,然后是针对 Julia 的 VSCode 扩展。如果这听起来很复杂,别担心,一点也不复杂。

朱莉娅

Julia 是一种相对较新的数据分析语言。它有一个高级语法,旨在易于使用和理解。有人称之为新 Python。

然而,与 Python 不同的是,它是一种编译语言,这意味着尽管它像 Python 一样容易编写,但它运行得更快,因为它被转换为更容易被计算机理解的低级代码。如果您必须处理需要大量处理的大型数据集,这非常有用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与 Python 相比,Julia 对程序的布局也没有那么挑剔。

Julia 拥有现代编程语言的所有特性,但是在这里,我们将看看 Julia 的数据可视化能力。这些既令人印象深刻又易于使用。

一旦你安装了 Julia 和 VSCode,你就可以运行 Julia 代码并将你的可视化保存为标准的 png 文件。

安装 Julia 和 VSCode

要安装 Julia,你需要去 https://julialang.org/的下载适合你操作系统的版本。安装很简单,只需按照说明操作。

对于 VSCode,建议是一样的,除了你去 https://code.visualstudio.com 的下载。

准备好之后,启动 VSCode 并加载 Julia 扩展。

要做到这一点,你可以点击最左边面板中的扩展符号(四个矩形中的一个与另一个略有偏移)并在搜索栏中键入 julia

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在点击安装

如果您已经正常安装了 Julia,这应该就是您需要做的全部工作。如果你做了一些不同的事情,你需要点击设置图标(齿轮)并手动输入julia.exe 的位置。您也可以在文件|首选项|扩展菜单中找到设置。

在继续之前,我必须告诉您,本文中的说明和代码是在 Windows 10 笔记本电脑上开发的。我不知道为什么它在 Linux 或 Mac 上应该有任何不同,但我没有在这些环境中测试过。

图书馆

在我们编写任何程序之前,我们需要加载我们想要使用的库。你只需要这样做一次,一旦你加载了库,它们就永远存在了。

通过打开一个 Julia 终端(也称为 REPL,用于读取、评估和打印循环)来实现这一点。

您可以通过多种方式启动 REPL。从视图菜单中找到命令面板,然后单击它或按 Ctrl+Shift+P。这会给你一个命令列表,其中一个是“朱莉娅:启动 REPL”(如果你看不到它向下滚动或开始在搜索栏中键入“朱莉娅”,命令就会出现),所以单击它,你会得到一个终端窗口。

在 REPL 窗口的 Julia 提示符下,键入以下内容

julia> using Pkg

这告诉 Julia 您将使用包管理器。然后键入以下内容并点击:

julia> Pkg.add("Plots")

现在你需要添加几个我们将在教程中用到的包。键入以下几行:

julia> Pkg.add("CSV")

julia> Pkg.add("DataFrames")

稍后您将会用到这些软件包。

现在你可以开始了!因此,打开一个新文件,将其命名为“myPlots.jl”或类似的名称,但要确保它具有扩展名。所以 VSCode 知道它是什么类型的文件。你现在应该有两个面板打开,文件和 REPL。您仍然希望打开 REPL,因为这是打印程序输出的地方。

您的屏幕应该是这样的:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

朱莉娅·图斯

和大多数其他语言一样,Julia 依赖于特定专业用途的代码库,我们只是下载了我们需要的代码。我们最初感兴趣的一个叫做。这为我们提供了创建数据可视化的能力。

所以我们需要执行的第一段代码是这样的:

using Plots

这告诉 Julia 加载我们将用来创建可视化的库。

你的第一次想象

这里有一个简单的程序来确保一切正常。

using Plots
x = 1:10; y = rand(10); # These are the plotting data 
plot(x,y, label="my label")

运行它将在 VSCode 的一个新选项卡中生成类似下图的内容(要运行代码,请在命令面板中找到该命令(Ctrl+Alt+P)将有许多选项,但您希望执行整个文件):

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第一次朱莉娅可视化

这可能需要一点时间,因为当你第一次执行代码时,Julia 代码是动态编译的,这使得你第一次运行时速度变慢,但下一次会变得很快。因此后续的代码运行会更快。

让我解释一下代码是怎么回事。

x = 1:10;y =兰特(10);#这些是绘图数据

这位代码创建两位数据,一位称为
x ,另一位称为 y

x 被赋予从 1 到 10 的数字范围的值,而 y 被赋予 10 个伪随机数的范围(每个伪随机数将具有 0 到 1 之间的值)。因此,我们在这里有一个图形的基础:一个范围从 1 到 10 的 x 轴和 x 轴上每个点的 y 值。

下一步很简单。

plot(x,y,label= “我的标签”)

这段代码调用一个函数来绘制图表,我们所做的就是给它 x 和 y 值——另外,我们还给它一个标签。

这很简单,但是,当然,我们真的想可视化一些真实的数据。

真实数据——天气

我有几个表,我在其他文章中用过。这是一组关于过去几十年英国伦敦天气的数据。我是从英国气象局提供的公共表格中推导出来的。

数据记录了每个月记录的最高温度、最低温度、降雨量和日照时数。我有两个文件,一个是完整的数据集,一个是 2018 年的,只有。它们是 CSV 格式的,就像您可以导入到电子表格中一样。

为了处理这些文件,我们需要另一个允许我们读取 CSV 文件的库。

我们可以看到在下一段代码中引用的库,即“使用 CSV ”,下面一行实际上是将数据读入变量 d

using CSV
d = CSV.read("D:notebooks/juliaplot/london2018.csv")
print(d)

运行代码的结果是,我们现在有了一个如下所示的数据表:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当然,您需要将文件名的路径更改为下载到的位置。

来自有意义数据的图表

我们下载的数据是一个表格,有 6 栏:Tmax (最高温度)、 Tmin (最低温度)、 Rain (降雨量单位为毫米)和 Sun (日照时数)。

这是数据的子集(仅针对 2018 年),因此所有行中的列具有相同的值。

条形图

所以,我们有的是 2018 年每个月的数据。如果我们想在柱状图中绘制每个月的最高温度,我们可以这样做:

using Plots
using CSV
d = CSV.read("D:notebooks/juliaplot/london2018.csv")
bar(d.Month,d.Tmax)

bar 是一个绘制条形图的函数(还有什么?)并且我们提供了 x 和 y 轴的列。我们通过使用数据表的名称,后跟列的名称来实现这一点。这两个名字用一个点隔开。

这里,我们将列作为 x 轴,将 Tmax 作为 y 轴,因此我们在表格中绘制了 12 个月中每个月的最高记录温度。

将它放入一个新的代码单元并运行它,您会惊喜地(我希望)看到这个图表:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

条形图

折线图

如果你想制作一个折线图,你可以做同样的事情,但是使用函数 plot

plot(d.Month, d.Tmax)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

折线图

如果您想在同一张图表上绘制最高和最低温度,您可以这样做:

plot(d.Month, [d.Tmax, d.Tmin], label=["Tmax","Tmin"])

请注意,d.Tmax 和 *d.Tmin,*这两个值在方括号中组合在一起,并用逗号分隔。这是向量或一维数组的符号。此外,我们还为线条添加了标签,这些标签以相同的方式分组。我们得到了这样一个图表:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

散点图

或者散点图怎么样?散点图通常用于查看是否可以在数据中检测到模式。这里我们绘制了最高温度与日照时数的关系图。正如你所料,这是一种模式:一种明显的相关性——日照时间越长,气温越高。

scatter(d.Tmax, d.Sun)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

圆形分格统计图表

我们拥有的数据并不适合被描绘成饼图,所以我们将再次生成一些随机数据— 5 个随机数。

x = 1:5; y = rand(5); # These are the plotting data
pie(x,y)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

柱状图

现在,我们将加载更多的数据:

d2 = CSV.read("londonweather.csv")

这类似于我们一直使用的数据表,但更大,因为它涵盖了几十年的数据,而不仅仅是一年。这给了我们大量的降雨量数据,这样我们就可以看到伦敦在一段较长的时间内的降雨量分布。要创建直方图,我们运行以下代码:

直方图(d2。Rain,label= “降雨”)

所以整个程序看起来像这样:

using Plots
using CSV
d2 = CSV.read("d:notebooks/juliaplot/londonweather.csv")
histogram(d2.Rain, label="Rainfall")

这是结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

保存图表

在 VSCode 环境中看到这些图表当然很好,但是为了有用,我们需要能够保存它们以便在我们的文档中使用它们。

您可以像这样保存图表:

histogram(d2.Rain, label="Rainfall") 
savefig("d:notebooks/juliaplot/myhistogram.png")

运行此代码时,不会显示图表,但会以给定的文件名保存。

结论

我希望这是有用的——我们已经查看了 Julia Plots 中可用的基本图表。朱莉娅的故事远比我们在这篇短文中看到的要多,你也可以用情节做更多的事情,但我希望你已经发现这篇介绍已经激起了你探索更多的欲望。

下载

右键单击下面的链接下载文件,然后将它们复制到 Julia 将使用的目录中。数据文件在这里: london2018.csvlondonweather.csv

一如既往,感谢阅读。如果你想知道我什么时候发表新文章,请考虑在这里注册一个电子邮件提醒。

如果你不是一个媒体订阅者,那就注册吧,这样你就可以每月花 5 美元阅读尽可能多的文章。在这里注册,我会赚一点佣金。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值