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

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

数据可视化:用 Python 制作交互式图表并给老板留下深刻印象的 3 个秘密技巧。

原文:https://towardsdatascience.com/data-visualisation-3-secret-tips-on-python-to-make-interactive-graphs-and-impress-your-boss-233a4914efa2?source=collection_archive---------13-----------------------

在这篇文章中,我将给出我使用 Python 和 PlotLy(作为一名数据科学家)的 top3 数据可视化技巧,这会让你的听众欣喜若狂。经过测试和批准。

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

亚历山大·卡根Unsplash 上拍摄的照片

在这篇文章中,我将尝试增强 Python 的可能性,使你的图形具有交互性、美观,并让你的老板印象深刻。这些技巧背后的目标是给人更好的印象,并增强用户/客户体验。管用!

概括来说,这三个目标是:

  • 1.交互性(提示 1、2 和 3)
  • 2.好看的图表(提示 3)
  • 3.给你的老板留下深刻印象(建议 1、2 和 3)

Gif 来自 Giphy.com

这三个技巧来自我作为数据科学家工作 3 年后在客户面前的经验。如果你有其他想法,欢迎在评论中分享。

在本文中,我们将介绍第一个技巧。

让我们开始吧。

0.先决条件

在开始之前,请确保您安装了 Python3 版本和以下软件包:

  • 熊猫
  • Plotly
  • 熊猫数据阅读器

下面的代码不能在 Python 2 上运行

一旦你确保安装了上面的包,我们将使用 Pandas DataReader 导入市场数据。在本例中,我们将为 Tesla 导入数据。

如果这些软件包中的任何一个尚未安装,您可以使用 pip 命令,如下所示。

pip install pandas-datareader
pip install DateTime

如果你想阅读更多关于算法交易和如何获得市场数据的内容,我强烈推荐这篇精彩的文章:

[## 如何从纽交所获取不到 3 行的市场数据(Python)。

在本文中,您将学习使用 Python 获取股票市场数据,如价格、交易量和基本面数据…

towardsdatascience.com](/how-to-get-market-data-from-the-nyse-in-less-than-3-lines-python-41791212709c)

如果你懒得看,可以找下面几行代码:

用于导入市场数据的代码行

一旦您从 Tesla 上传了数据,将使用的输出和数据集如下:

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

运行上述代码和 Yahoo Finance API 后的预期输出。

既然先决条件已经解决,我们可以从第一个提示开始。

提示 1 :添加范围滑块

我将与您分享的第一个技巧是范围滑动选择器。信不信由你,在一行代码中,你已经可以给你的图形带来实质性的交互性。

用户可以选择和缩放特定的时间段,而不是静态的图表。

在下面的例子中,它将面向财务图表,但是一旦有了时间序列,您就可以使用它。

例如,它可以用于营销来规划一段时间内的销售,或者医疗工程来规划恢复进展。我不能涵盖所有不同的领域,但你知道我的应用的可能性。

让我们在下面输入代码:

输出:

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

上图显示了使用范围滑动选择器的影响。

印象深刻不是吗?

如果你看上面的图表,你会发现一个范围滑动选择器被添加到图表中。用户/客户端将能够容易地缩放图形的特定部分。

您甚至可以用下面的代码行将其导出为 HTML,并发送给客户或朋友。

fig.write_html("/Users/Desktop/MyGraph.html")

如果你想从头到尾建造它,跟随这个一步一步的视频,它甚至是实时的更惊人的:

关于如何构建交互式 Python 图表的教程。

另一个例子是,您也可以导入多个份额,并将这些份额索引到相同的比例(Source 1)。结果如下:

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

后续提示:

在下一篇文章中,我们将介绍如何添加一个交互式按钮来帮助客户/用户本能地过滤数据,如下图所示。

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

如果你有任何问题,或者你想让我介绍数据可视化的某一点,欢迎在问答中发表评论。

来源:

一天学会算法交易(模块 3):

[## 一天学会算法交易(美国大选更新)

交易 707 是数据科学家和交易员的结合。我们都在伦敦工作和生活。我们觉得累了…

www.udemy.com](https://www.udemy.com/course/learn-algorithmic-trading-in-one-day/?couponCode=TOWARDSCIENCE)

宝莱坞的数据可视化。一

原文:https://towardsdatascience.com/data-visualisation-of-bollywood-365fd57ff1d3?source=collection_archive---------64-----------------------

角。1~网页抓取

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

布莱恩·麦高恩在 Unsplash 上的照片

如果你曾经有机会和印度人谈论电影,你一定已经意识到宝莱坞在他们的生活中扮演了多么重要的角色。代表我所有的同胞,我们就是离不开他们~无论是对着 3 个白痴、笑,还是过着 Zindagi Na Milengi Dobara (我个人一直最喜欢的)的常青时光,还是跟着沙鲁克·汗chamk Challo 一起跳舞!

这个小项目的灵感来自于我对宝莱坞的热爱。由于这是一个巨大的产业,我想比较一下有史以来票房最高的电影。

我会把这个项目分成几个部分,这样更容易理解。这篇文章将围绕如何使用 Python 中的 BeautifulSoup 收集数据展开。

1.网络抓取简介,美丽的群组和请求

网页抓取

手动收集数据是一个乏味且耗时的过程,这时网络搜集就派上了用场。这是一种用于从网站自动检索信息的技术,几乎不费吹灰之力。

这是一种复制形式,从网络上收集并复制特定数据,通常复制到中央本地数据库或电子表格中,供以后检索或分析。——维基百科

美丽的声音

BeautifulSoup 是一个 Python 库,有助于网络抓取。它位于 HTML 或 XML 解析器之上,为迭代、搜索和修改解析树提供 Pythonic 式的习惯用法。

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

卡洛斯·穆扎Unsplash 上的照片

为了成功地使用 BeautifulSoup,必须了解 HTML 代码的基础知识,以便从页面中收集正确的信息。

当打开一个页面时,例如这个维基百科页面,可以通过右击页面,然后转到“inspect”来访问 HTML 代码。对于初学者来说,那里的代码量肯定是巨大的,所以要快速找到具体的数据,必须突出显示表中的一个文本,右键单击它,然后转到“inspect”。

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

每个元素都有一个特定的标签和类。

  • 表示整个表格,如下面的截图所示。它给出了一个“类”,从这个类中可以识别表。该表的各个组件都在此标签下。

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

  • 接下来是标签,用来表示表格的表头。

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

  • 标识表格的所有行。

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

  • 标识单个行。

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

  • 代表一行中的每个单独的单元格。

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

开始刮吧!

2.入门指南

为了下载页面以执行 web 抓取,必须安装 R equests 包。它不仅允许用户下载页面内容,还允许用户发送 HTTP 请求。

这可以使用终端中的 pip 命令来安装。

pip install requests
pip install beautifulsoup4

3.导入库

对于这一部分,这是收集数据所需的 4 个库。

import pandas as pd
import numpy as np
import requests
from bs4 import BeautifulSoup
  1. Pandas: 用于将数据转换成结构化的形式(表格)。
  2. Numpy: 一个流行的库,允许用户简单快速地执行数组操作。
  3. BeautifulSoup: 检索页面的 HTML 结构。

4.启动代码

website='[https://en.wikipedia.org/wiki/List_of_highest-grossing_Indian_films'](https://en.wikipedia.org/wiki/List_of_highest-grossing_Indian_films')
website_url=requests.get(website).text
soup=BeautifulSoup(website_url,'html.parser')

上面的代码定义了从中检索数据的网站,并调用 soup 函数来下载数据。

s = requests.Session() 
response = s.get(website, timeout=10) 
response

这段代码确保页面的下载已经完成。您应该得到输出为,这意味着它是完整的。

5.阅读表格

my_table = soup.find('table', {"class":'wikitable sortable'})

Soup.find 函数用于通过定义标签和类来查找页面中的特定元素。正如我上面所说的,页面中的表有“table”标记,所以如果整个页面中只有一个表,就没有必要指定它的类。在这种情况下,有多个表,我只想要其中的一个。当鼠标悬停在表上方时,可以看到我想要的表具有类‘wiki table sortable ’,所以我指定了它。

当您运行 print(my_table)函数时,您会看到它打印出标签内的所有内容(在 HTML 代码中从到

),这非常难以阅读。

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

如果你想知道,这就是结果的样子。这幅图只是整个结果的一小部分。

如果您担心是否检索到了正确的表,此代码可用于确认。它打印出列标题和列数。

header = [th.text.rstrip() for th in rows[0].find_all('th')]
print(header)
print('------------')
print(len(header))

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

为了收集每行中的信息,下面的代码是

my_table_data = []
for row in rows[1:]:
            data = [d.text.rstrip() for d in row.select('td')]
            my_table_data.append(data)

既然数据已经收集完毕,就可以使用 pandas 将它们组成一个数据框。

df = pd.DataFrame(my_table_data)

打印出来后,应该是这样的:

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

耶!

不过任务还没有结束…在我们保存它之前,最好根据我们的喜好重命名和清理数据。

6.清洁和保存

我使用这段代码重命名了列名并删除了不需要的信息。

df.rename(columns = {0:"Rank"}, inplace = True)
df.rename(columns = {1:"Peak"}, inplace = True)
df.rename(columns = {2:"Film"}, inplace = True)
df.rename(columns = {3:"Year"}, inplace = True)
df.rename(columns = {4:"Director"}, inplace = True)
df.rename(columns = {5:"Producer"}, inplace = True)
df.rename(columns = {6:"Language"}, inplace = True)
df.rename(columns = {7:"Worldwide_Gross_INR"}, inplace = True)
df = df.drop(columns=[8])df.head()

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

一旦我对我的数据满意了,我就把它保存到一个 excel 文件中。

df.to_excel('Bollywood_movies1.xlsx', index=True)

瞧啊。我们刚刚使用网络抓取创建了我们的第一个数据表!

请继续关注我对这个数据集的可视化。😃

使用 Seaborn 的数据可视化教程

原文:https://towardsdatascience.com/data-visualisation-tutorial-using-seaborn-26e1ef9043db?source=collection_archive---------33-----------------------

快速数据可视化教程/ Seaborn 参考笔记

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

照片来自 Unsplash

“Seaborn 让您的数据科学项目的探索性数据分析阶段变得美丽而轻松”

介绍

这个教程是针对那些曾经和 Seaborn 合作过,但是已经失去接触的观众。我希望,通过阅读本文,您可以回忆起 Seaborn 可视化风格和命令,以便开始您的数据探索。本教程的布局是这样的,它展示了在给定 x 个数字特征和 y 个分类特征的情况下,如何使用 Seaborn 进行可视化。

让我们导入 Seaborn:

import seaborn as sns

数据集:

我们将使用 seaborn 库中可用的 tips 数据集。

使用以下方式加载数据集:

tips = sns.load_dataset('tips')

total_bill(数字变量) :该桌的总账单
tip(数字) :给为该桌服务的服务员的小费
性别(分类):账单支付者的性别(男/女)
吸烟者(分类):账单支付者是否吸烟(是/否)
day(分类):星期几(星期日、星期一等)
table_size(数字):桌子的容量
date:账单支付的日期和时间

海风风格:

让我们从 Seaborn 中可用的不同风格开始。每种样式都通过背景颜色、网格布局和图的轴刻度来区分。Seaborn 有五种基本样式:深色、深色网格、白色、白色网格和刻度。

sns.set_style('dark')sns.set_style('darkgrid')sns.set_style('ticks')sns.set_style('white')sns.set_style('whitegrid')

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

形象化

让我们看看使用 Seaborn 可以实现的各种可视化。下面的每一部分都展示了在给定你可用的分类变量和数字变量的情况下,如何进行可视化。

一个数字变量:

如果我们有一个数字变量,我们可以分析这个变量的分布。

g = sns.distplot(tips.tip)
g.set_title('Tip Amount Distribution');g = sns.distplot(tips.tip,kde=False)
g.set_title('Tip Amount Histogram');g = sns.distplot(tips.tip,rug=True)
g.set_title('Tip Amount Distribution with rug');

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

我们可以观察到小费金额数据大致正常。

一个分类变量

如果我们有一个分类变量,我们可以做一个计数图,显示分类变量的每个值出现的频率。

g = sns.catplot(x="day",kind='count',order=['Thur','Fri','Sun','Sat'],data=tips);g.fig.suptitle("Frequency of days in the tips dataset [Count Plot]",y=1.05);

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

两个数值变量

为了分析两个数值变量之间的关系,我们可以在 seaborn 做散点图。

g = sns.relplot(x="total_bill",y="tip",data=tips,kind='scatter');g.fig.suptitle('Relationship between continuous variables [Scatter Plot]',y=1.05);

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

Seaborn 还使两个数值变量之间关系的密度分布可视化变得容易。

g = sns.jointplot(x="total_bill",y='tip',data=tips,kind='kde');g.fig.suptitle('Density distribution among tips and total_bill [Joint Plot]',y=1.05);

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

kde 图是另一种显示两个连续变量之间关系分布的图。

g = sns.jointplot(x="total_bill",y='tip',data=tips,kind='kde');g.fig.suptitle('Density distribution among tips and total_bill [Joint Plot]',y=1.05);

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

我们也可以用置信区间画一条回归线,其中一个数字变量作为因变量,另一个作为自变量。

g = sns.lmplot(x="total_bill",y="tip",data=tips);g.fig.suptitle('Relationship b/w tip and total_bill [Scatter Plot + Regression Line]',y=1.05);

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

带回归线的散点图

如果自变量是 datetime,我们可以做一个线图,也是时间序列图。

g = sns.lineplot(x="date",y="total_bill",data=tips);g.set_title('Total bill amount over time [Line plot]');

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

两个数字变量和一个分类变量

有了两个数值变量和一个分类变量,我们可以绘制两个数值变量部分提到的所有图。分类变量的附加维度可用作颜色/标记,以区分图中的分类变量值。

g = sns.relplot(x="total_bill",y="tip",hue='sex',kind='scatter',data=tips);
g.fig.suptitle('Relationship b/w totalbill and tip distinguished by gender [Scatter Plot]',y=1.05);g = sns.relplot(x="total_bill",y="tip",style='sex',kind='scatter',data=tips)
g.fig.suptitle('Relationship b/w totalbill distinguished by gender as marker [Scatter Plot]',y=1.05);

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

或者,我们可以将每个分类变量值作为一个组来绘制每个分类变量值的两个数值变量之间的关系。

g = sns.relplot(x="total_bill",y="tip",col='sex',kind='scatter',data=tips);g.fig.suptitle('Relationship between totalbill and tip by gender [Scatter Plot]',y=1.05);

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

三个数字变量

如果我们有三个数值变量,我们可以做一个两个变量的散点图,第三个变量可以用作散点图中各点的大小。

g = sns.relplot(x="total_bill",y="tip",size='table_size',kind='scatter',data=tips);g.fig.suptitle('total bill vs tip distinguished by table size [Scatter Plot]',y=1.05);

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

三个数值变量和一个分类变量:

如果我们有三个数字变量和一个分类变量,可以为分类变量的每个值绘制上一节中提到的相同的图。

g = sns.relplot(x="total_bill",y="tip",col='sex',size='table_size',kind='scatter',data=tips);g.fig.suptitle('Total bill vs tip by gender distinguished by table size [Scatter Plot]',y=1.03);

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

一个数字变量和一个分类变量:

这可能是数据可视化中最基本、最常见、最有用的情节。如果我们有一个数字变量和一个分类变量,我们可以做各种各样的图,如条形图和条形图。

g = sns.catplot(x="day",y="tip",kind='bar',order=['Thur','Fri','Sun','Sat'],ci=False,data=tips);g.fig.suptitle('Tip amount by day of week [Bar Plot]',y=1.05);

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

g = sns.catplot(x="day",y="tip",kind='strip',order=['Thur','Fri','Sun','Sat'],ci=False,data=tips);g.fig.suptitle('Tip amount by day along with tips as scatter [Strip Plot]',y=1.03);

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

如下图所示的蜂群图和小提琴图使我们能够可视化每个分类变量中数值变量的分布。

g = sns.catplot(x="day",y="tip",kind='swarm',order=['Thur','Fri','Sun','Sat'],ci=False,data=tips);g.fig.suptitle('Tip amount by day along with tip distribution [Swarm Plot]',y=1.05);

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

g = sns.catplot(x="day",y="tip",kind='violin',order=['Thur','Fri','Sun','Sat'],data=tips);g.fig.suptitle('Tips distributions by day [Violin Plot]');

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

我们可以使用一个点图来显示连续变量在分类变量的每个值内的四分位数范围(第 25 个百分点到第 75 个百分点)。

g = sns.catplot(x="day",y="tip",kind='point',order=['Thur','Fri','Sun','Sat'],data=tips,capsize=0.5);g.fig.suptitle('IQR Range of tip by day [Point Plot]',y=1.05);

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

一个数字变量和两个分类变量:

有了一个数字变量和两个分类变量,我们可以使用上一节中提到的所有图,并在每个子图中将额外的第三个分类变量作为列变量或子组,如下所示。

g = sns.catplot(x="day",y="tip",kind='bar',col='smoker',order=['Thur','Fri','Sun','Sat'],ci=False,data=tips);g.fig.suptitle('Tip amount by day of week by smoker/non-smoker [Bar Plot]',y=1.05);

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

g = sns.catplot(x="day",y="tip",kind='bar',hue='smoker',order=['Thur','Fri','Sun','Sat'],ci=False,data=tips);g.fig.suptitle('Tips by day with smoker/non-smoker subgroup [Grouped Bar Plot]',y=1.05);

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

一个数字变量和三个分类变量:

有了一个数字变量和三个分类变量,我们可以实现“一个分类变量和一个数字变量”一节中提到的所有可视化,并容纳另外两个分类变量,其中一个变量作为图中的列变量/行变量,另一个变量作为每个子图中的子组。

g = sns.catplot(x="day",y="tip",kind='bar',hue='smoker',col='sex',order=['Thur','Fri','Sun','Sat'],ci=False,data=tips);g.fig.suptitle('Tips by day with smoker/non-smoker subgroup by gender [Grouped Bar Plot]',y=1.05);

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

三个以上的连续变量:

最后,如果我们有三个以上的数字变量,我们可以使用热图或 pariplot。有了这些图,我们可以直观地看到单个图中每个数值变量之间的关系。

g = sns.heatmap(tips.corr());g.set_title('correlation between continuous variables [Heat Map]');

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

g = sns.pairplot(tips);g.fig.suptitle('Relationship between continuous variables [Patiplot]',y=1.03);

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

设置标题、标签和图例

一些 Seaborn plots 返回 matplotlib AxesSubplot,而另一些返回 FacetGrid(如果您忘记了什么是 matplotlib AxesSubplots,请查看我在 matplotlib 上的注释以供参考)。

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

FacetGrid 是 matplotlib AxesSubPlots 的网格(2D 数组)。您可以使用数组索引访问每个子情节,并为每个情节设置标签和标题。

g = sns.relplot(x="total_bill",y="tip",data=tips,kind='scatter');
g.axes[0,0].set_title('Relationship between continuous variables [Scatter Plot]');
g.axes[0,0].set_xlabel('Total Bill Amount');
g.axes[0,0].set_ylabel('Tip Amount');

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

如果绘图返回 AxesSubplot,可以使用 AxesSubplot 方法设置标题和图例。

g = sns.distplot(tips.tip)
g.set_title('Tip Amount Probablity Distribution');
g.set_xlabel('Tip Amount')
g.set_ylabel('probability')

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

对于 FacetGrid,可以从 FacetGrid 对象中获取 figure 对象,并为 figure 对象设置标题。

g = sns.relplot(x="total_bill",y="tip",col='sex',kind='scatter',data=tips);g.fig.suptitle('Relationship between totalbill and tip by gender [Scatter Plot]',y=1.05);

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

结论

希望本教程有助于你开始使用 seaborn 轻松制作漂亮的可视化效果。虽然 Seaborn 易于使用,但它也提供了许多定制功能,这是一个高级主题。一旦你熟悉了基本的绘图,你就可以在使用 Seaborn 进行可视化时进一步探索它。

参考

用于显示样地的数据集:
https://github . com/mwaskom/seaborn-data/blob/master/tips . CSV

Seaborn 官方网站:
【https://seaborn.pydata.org/

本文中使用的图的源代码可以在我的 github repo 中找到:
https://github . com/pavankumarboinapalli/articles/blob/master/seabornify . ipynb

我乐于接受建设性的批评。请随意评论改进这篇文章的方法。例如,如果你觉得有一些信息可以包括在内,或者如果你想对一个子主题有更多的解释。

用 Matplotlib 实现数据可视化

原文:https://towardsdatascience.com/data-visualisation-with-matplotlib-13aaf4787b30?source=collection_archive---------18-----------------------

如何在 5 分钟内掌握 Matplotlib 的基本关键特性

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

照片由 Isaac SmithUnsplash 上拍摄

Matplotlib 是 Python 中著名的可视化数据库之一。在本文中,我将介绍这些我认为有用且重要的关键函数,以便那些 Matplotlib 新手能够快速掌握。

  • 基本制图
  • 在标题和标签中生成数学表达式
  • 用文本和箭头给图表添加注释
  • 突出显示您的图表

入门指南

像往常一样,如果我们没有 matplotlib 包,我们需要安装它。

pip install matplotlib

让我们导入我们在本教程中需要的包。

基本制图

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

figure1.png

让我们从 Matplotlib 中的基本图表功能开始。

plt.title将为您的图表创建一个标题。它接受普通的字符串和 Tex 标记。如果您希望使用 Tex 标记来生成数学表达式,您必须使用$来包含您的文本字符串。我更喜欢用这个,因为它看起来比sin(x/2)好多了!下面是一些我们可以在 Matplotlib 中使用的其他数学表达式的例子。更多例子你可以参考文档

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

plt.plot将用给定的数据点生成一个图,xnp.sin(x)是我们在这种情况下输入的数据点。默认情况下,plt.plot会返回一个实线样式(-)。您可以选择其他线型,如虚线或点线。

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

线条样式

我们可以用color参数定制绘图的颜色。你可以传递颜色字符串或颜色代码。和标题一样,你也可以把数学表达式传递给剧情的labelplt.legend将根据您在plot中传递的属性为图表创建图例。

plt.grid将在图表上创建一个网格。与plot类似,可以定义不同的线条样式。alpha是网格的不透明度。

plt.xlabelplt.ylabel用于标注 x 轴和 y 轴。

如果您想将此图表保存为图像,请使用plt.savefig。如果您从未指定完整路径,默认情况下,图像将保存在脚本的同一文件夹中。

plt.show用于在使用终端或脚本时显示图表。这在一些 IDE 和 Jupyter 笔记本中是不必要的。

注释您的图表

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

figure2.png

我已经用plt.figure(figsize=(10,10))放大了图表的尺寸,这样我们可以更清楚地看到注释。您可以将宽度和高度传递给figsize以获得您想要的图表大小。

plt.annotate用于标注两条直线的交点。xy是注释点的位置,而xytext是注释文本的位置。我已经展示了 3 种不同颜色和尺寸的箭头,你可以参考文档以获得更多选项。

突出显示您的图表

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

figure3.png

plt.axvspan用于沿 x 轴高亮显示,而plt.axhspan用于沿 y 轴高亮显示。我们可以用facecolor参数定义不同的颜色,用alpha定义不同的不透明度。

自定义条形图中的 xtick

条形图也是另一个在可视化中常用的图表,让我们也来看看。

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

figure4.png

plt.bar取一个数组为你的横条坐标。如果你想创建一个多条形图,你必须传递两个条形图的坐标。x — width/2x + width/2被传入其中以创建一个多条形图。

plt.xtick用于将标签更新为天数(['Mon','Tue','Wed','Thu','Fri']),因为默认为[0,1,2,3,4]。如果文本太长,我们也可以给这个标签添加旋转。在这种情况下,刻度会旋转 30 度。

现在你已经学会了如何用 Matplotlib 定制你的图表**,我希望这篇文章能帮助你掌握 Matplotlib 的基础知识,并轻松熟悉 Matplotlib 的其他功能。如果我犯了任何错误或错别字,请给我留言。**

您可以在我的 Github 中查看完整的 Jupyter 笔记本。干杯!

如果你喜欢读这篇文章,你可能也会喜欢这些:

[## 如何用熊猫用 Python 重写 SQL 查询

在 Python 中再现相同的 SQL 查询结果

towardsdatascience.com](/how-to-rewrite-your-sql-queries-in-python-with-pandas-8d5b01ab8e31) [## 如何掌握 Python 命令行参数

使用命令行参数创建自己的 Python 脚本的简单指南

towardsdatascience.com](/how-to-master-python-command-line-arguments-5d5ad4bcf985)

你可以在 Medium 上找到我其他作品的链接,关注我 这里 。感谢阅读!

数据可视化 101:有效可视化的 7 个步骤

原文:https://towardsdatascience.com/data-visualization-101-7-steps-for-effective-visualizations-491a17d974de?source=collection_archive---------13-----------------------

用引人注目的视觉效果讲述您的数据故事。

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

图片由作者提供(使用 Canva 制作)

成为数据科学家的一个重要方面是能够使用各种可视化工具有效地交流数据分析结果。

数据是一个用数字讲述的故事,可视化是你讲述这个故事的方式。

不幸的是,我们更多地关注学习新的分析方法、库和方法,熟悉新的数据集或趋势机器学习和人工智能算法,而忽视了提高我们的可视化技能。

不要误解我的意思,掌握最新的技术对于在 DS 领域取得成功是非常重要的。但是我们需要花一些时间来提高可视化和讲故事的能力。

想象一下这个 T3;你 花费数小时清理数据,探索数据,并对其建模。很有意思;你的结果是有效的,而且意义重大。但是,你的数据可视化是枯燥和无效的。这导致你的观众忽略了你的努力。

学习如何有效地可视化您的数据就像学习如何讲述一个引人入胜的故事。

您对图表类型、颜色和风格的选择将对他人如何看待您的数据产生巨大的影响。

幸运的是,有一些简单的指导方针,如果你遵循的话,可以让你的数据可视化在视觉上吸引人,引人注目和迷人

这篇文章将介绍基于科学实验和研究的简单技巧来提升你的视觉化。

事不宜迟,让我们开始用我们的数据有效地讲述一个故事。

提示№1:简单总是更好

使用可视化的目的是让信息更容易被他人阅读和理解。因此,要避免复杂、拥挤的可视化。

每当你创建一个可视化,你需要注意数据和墨水的比例。数据-油墨比率是一个术语,用于表示图表中数据与冗余油墨的数量,如背景效果/颜色和数据的 3D 表示。

除了使用多维图形,您还可以使用可视化属性(如形状、颜色和厚度)来区分不同的数据集。

为了使您的可视化简单有效,您的数据-墨水比率需要很高。

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

图片由作者提供(使用 Canva 制作)

提示 2:选择正确的图表类型

[## 数据可视化 101:如何选择图表类型

如何选择最能描述数据的图表类型

towardsdatascience.com](/data-visualization-101-how-to-choose-a-chart-type-9b8830e558d6)

每当您试图创建一个图表时,您都需要注意您的数据类型,以选择正确的图表来准确地表示它。

根据您使用的数据,您将使用的图表类型会有所不同。一个好的经验法则是:

  1. 如果您有分类数据,如果您有 5 个以上的类别,请使用条形图,否则请使用饼图。
  2. 如果您有名义数据,如果您的数据是离散的,请使用条形图或直方图,如果是连续的,请使用折线图/面积图。
  3. 如果要显示数据集中值之间的关系,请使用散点图、气泡图或折线图。
  4. 如果要比较数值,请使用饼图(相对比较)或条形图(精确比较)。

提示 3:想象每个图表的一个方面

在创建图表之前,您需要决定您到底想要显示什么。你想显示图案还是细节?为了让你的视觉效果更有效,试着一次只展示一个方面。

如果您需要显示数据的两个方面,一个模式和一些细节,请使用两个不同的图。例如,您可以使用折线图显示详细信息,使用热图或水平图显示数据中的模式。

水平图平行显示多个时间序列。地平线图类似于时间序列图。然而,在横向图中,使用颜色来突出不同时间序列之间的差异和极端情况。

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

图片由作者提供(使用 Canva 制作)

提示 4:让你的坐标轴范围有趣

您的垂直轴和水平轴的范围取决于图表的类型和您试图用它讲述的故事。

例如,如果您使用条形图,并且只显示不同数据集的最大值,那么您的坐标轴需要从 0 开始。

然而,如果你想用精确的数字显示数据的波动,你需要放大你的坐标轴来清楚地显示这种波动。当图限接近波动范围时,更容易看到数据集中的变化。

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

图片由作者提供(使用 Canva 制作)

技巧№5:用数据转换强调变化率

在可视化中使用变换的决定取决于数据集和绘图目的。在图表上应用变换可以改变图表传达的印象和信息。

一般来说,您可以转换图形的两个方面。你的坐标轴或者数据本身。

变换您的坐标轴

绘制一组数据时,可以使用线性或对数刻度。对数刻度通常用于显示一段时间内的变化百分比,因此刻度上的点不是等距分布的。

另一方面,线性比例用于显示数据集各唯一点之间的绝对差异。

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

图片由作者提供(使用 Canva 制作)

转变您的数据

人们有时很难理解对数标度,因此避免这种情况的方法是转换数据。例如,您可以将值标准化为平均值或特定值,而不是显示绝对值。

提示 6:小心散点图中的重叠点

使用散点图时,有时两个或多个圆可能会相互重叠,这可能会使读取数据更加复杂。它还可以隐藏图形中特定集群的实际大小。

要避免这个问题并使你的散点图更有意义,你可以做的一件事是对你的圆使用不同的不透明度,以清晰地显示你的所有数据点。

实现类似效果的另一个策略是绘制未填充的圆。这种方法在大型数据集的情况下可能没有好处,那么,使用不透明度选项可能是一个更好的选择。您还可以更改圆圈的大小,以获得更清晰的整体视觉效果。

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

图片由作者提供(使用 Canva 制作)

提示 7:小心你的配色方案

颜色可以成就或破坏你的图表。当你创造新的视觉效果时,你需要小心选择配色方案。要选择最佳的配色方案,你需要问自己两个问题。

颜色在不同平台上可见吗?

有时,当我们在设备上构建图表以用于演示或会议时,我们会忘记测试该图表在不同平台上的显示效果。

它们在电脑或手机上显示时会清晰吗?灯光怎么样?我必须使用高屏幕亮度才能看清图表,还是不管用?

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

图片由作者提供(使用 Canva 制作)

我将使用什么媒体来显示我的图表?

如果您正在创建要打印的图表,纸张类型可能会影响您对颜色的选择。有时,在特定种类的纸张上打印时,屏幕上清晰的颜色可能不明显。

此外,尽量使用较少的颜色或相关的颜色来传达你的信息。如果你正在创建一个热图,你需要使用一种颜色的渐变,而不是不同的颜色。使用不同的颜色可能会混淆,使你的地图难以理解。

结论

可视化数据通常是将数据传达给广大受众的最佳和最直接的方法。每当我们试图创建图表和数字时,我们需要使它们简单、直接、易读。

请记住,您的数据讲述了一个故事,您对可视化的选择可以让这个故事变得激动人心,也可以让它变得完全乏味。

因此,遵循 7 个简单的步骤,你可以快速提高可视化的质量和可读性:

  1. 简单的总是更好。
  2. 您的轴范围产生了巨大的差异。
  3. 每张图关注的一个方面。
  4. 为您的数据选择正确的图表类型
  5. 使用变换来强调变化。
  6. 小心散点图中的重叠圆。
  7. 不要过度使用颜色方案。

参考

[1]希利,C. G. (1996 年 10 月)。为数据可视化选择有效的颜色。第七届 IEEE 可视化年会论文集’ 96 (第 263-270 页)。IEEE。

[2]常青树,S. D. (2019)。有效的数据可视化:正确的数据对应正确的图表。Sage 出版公司。

[3]c .凯莱赫和 t .瓦格纳(2011 年)。科学出版物中有效数据可视化的十大准则。环境建模&软件26 (6)、822–827。

数据可视化 101:如何选择图表类型

原文:https://towardsdatascience.com/data-visualization-101-how-to-choose-a-chart-type-9b8830e558d6?source=collection_archive---------0-----------------------

如何选择最能描述数据的图表类型

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

图片由作者提供(使用 Canva 制作)

在处理任何数据科学项目时,探索和解释结果的一个重要步骤是可视化数据。在项目开始时,可视化数据有助于您更好地理解数据,找到模式和趋势。

在项目结束时,在您完成分析并应用不同的机器学习模型后,数据可视化将帮助您更有效地交流您的结果。

人类天生是视觉动物;当事物以一种易于理解的可视化方式呈现时,它对我们来说是有意义的。解读条形图比查看电子表格中的大量数字要容易得多。

高效的数据可视化可以决定项目的成败。如果你花了大量的精力来分析和模拟你的数据,但是你最终使用了错误的图表类型来展示你的结果,你的观众将不会理解你所付出的努力或者如何使用这些结果。

有许多图表类型,如此之多,选择正确的图表的过程可能会令人不知所措。这篇文章将——希望——给你一个简单直接的方法来选择最好的图表类型,完美地代表你的数据,并最有效地传达它。

如何开始?

在开始研究图表类型之前,你需要问自己 5 个关于数据的关键问题。这些问题将帮助您更好地理解您的数据,从而选择最佳的图表类型来表示它。

№1.你的数据试图传达什么样的故事?

数据只是用数字讲述的故事。

所以,关于你的数据,你需要知道的第一件事是,它试图传递什么样的故事?为什么收集这些数据,如何收集?

你收集数据是为了发现趋势吗?比较不同的选择?它显示出一些分布吗?还是用来观察不同值集之间的关系?

了解数据的起源并知道它试图传递什么将使选择图表类型变得更加容易。

№2.你将向谁展示你的成果?

一旦你弄清楚了数据背后的故事,接下来,你需要知道你将向谁展示你的结果。如果你正在分析股票市场的趋势,并且你将把你的发现展示给一些商人,你可能会使用不同的图表类型,而不是把你的发现展示给刚开始接触股票市场的人。

使用数据可视化的全部目的是使数据通信更有效。

因此,您需要了解您的受众,以便在向他们展示数据时可以选择最佳的图表类型。

№3.你的数据有多大?

数据的大小将显著影响您将使用的图表类型。有些类型的图表不适合用于大规模数据集,而有些则非常适合大数据。

例如,饼图最适用于少量数据集;但是,如果您使用大量数据集,使用散点图会更有意义。

您需要选择一种最适合您的数据大小的图表类型,并清楚地表示它而不混乱。

№4.你的数据类型是什么?

有几种类型的数据,描述的,连续的,定性的,或分类的。您可以使用这种数据来消除某些图表类型。例如,如果你有连续的数据,条形图可能不是最好的选择;你可能需要用折线图来代替。

同样,如果您有分类数据,那么使用条形图或饼图可能是一个好主意。您可能不想使用带有分类数据的折线图,因为根据定义,您不能有连续的类别。必须是离散的有限数量的类别。

№5.您的数据的不同元素是如何相互关联的?

最后,您需要问自己数据的不同元素是如何关联的。您的数据顺序是否基于某些因素—时间、大小、类型?并不代表基于某个变量的排名。还是不同变量之间的相关性?

您的数据是随时间变化的时间序列吗?或者更多的是一种分配?

数据集中的值之间的关系可能会更直接地决定使用哪种图表类型。

最常用的 7 种图表类型

有 40 多种图表可供选择;有些比其他的更常用,因为它们更容易构建和解释。让我们谈谈最常用的 7 种图表类型以及何时使用它们。

条形图

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

图片由作者提供(使用 Canva 制作)

何时使用:

  1. 比较更大数据集的各部分,突出显示不同的类别,或显示随时间的变化。
  2. 使用长类别标签——它提供了更多的空间。
  3. 如果您希望在数据集中同时显示正值和负值。

何时回避:

  1. 如果您使用多个数据点。
  2. 如果你有很多类别,避免你的图表超载。你的图表不应该超过 10 条。

圆形分格统计图表

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

图片由作者提供(使用 Canva 制作)

何时使用:

  1. 当您显示整个数据集的相对比例和百分比时。
  2. 最适用于小型数据集-也适用于圆环图。
  3. 当比较一个因素对不同类别的影响时。
  4. 如果你有多达 6 个类别。
  5. 当你的数据是名词性的而不是有序的。

何时回避:

  1. 如果你有一个大的数据集。
  2. 如果你想在数值之间进行精确或绝对的比较。

折线图

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

图片由作者提供(使用 Canva 制作)

何时使用:

  1. 如果你有一个不断变化的数据集。
  2. 如果您的数据集对于条形图来说太大。
  3. 如果要显示同一时间线的多个系列。
  4. 如果您想要可视化趋势而不是精确值。

何时回避:

  1. 折线图适用于较大的数据集,所以,如果你有一个小的数据集,使用条形图代替。

散点图

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

图片由作者提供(使用 Canva 制作)

何时使用:

  1. 展示大数据集中的相关性和聚类。
  2. 如果数据集包含具有一对值的点。
  3. 如果数据集中的点的顺序不重要。

何时回避:

  1. 如果你有一个小的数据集。
  2. 如果数据集中的值不相关。

对比图

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

图片由作者提供(使用 Canva 制作)

何时使用:

  1. 如果你想展示部分到整体的关系。
  2. 如果您想描绘数据量,而不仅仅是与时间的关系。

何时回避:

  1. 它不能用于离散数据。

泡泡图

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

图片由作者提供(使用 Canva 制作)

何时使用:

  1. 如果要比较独立值。
  2. 如果你想显示分布或关系。

何时回避:

  1. 如果你有一个小的数据集。

组合图表

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

图片由作者提供(使用 Canva 制作)

何时使用:

  1. 如果您想比较不同测量值的值。
  2. 如果值的范围不同。

何时回避:

  1. 如果要显示 2~3 种以上的图形。在这种情况下,最好有单独的图表,以便于阅读和理解。

图表选择提示

每当您决定创建一些数据可视化时,请使用这些最佳实践来使其更加直观和有效。

  1. 如果您有分类数据,如果您有 5 个以上的类别,请使用条形图,否则请使用饼图。
  2. 如果您有名义数据,如果您的数据是离散的,请使用条形图或直方图,如果是连续的,请使用折线图/面积图。
  3. 如果要显示数据集中值之间的关系,请使用散点图、气泡图或折线图。
  4. 如果要比较数值,请使用饼图(相对比较)或条形图(精确比较)。
  5. 如果要比较体积,请使用面积图或气泡图。
  6. 如果要显示数据的趋势和模式,请使用折线图、条形图或散点图。

结论

在选择使用哪种图表类型之前,您需要更好地了解您的数据、数据背后的故事以及您的目标受众/媒体。每当你试图创建一个可视化,选择简单的颜色和字体。

永远以简单的视觉化为目标,而不是复杂的。可视化数据的目标是使其更容易理解和阅读。因此,避免超载和混乱你的图表。拥有多个简单的图表总是比一个复杂的图表要好。

本文是可视化 101 系列文章的第一部分。接下来的文章将介绍有效数据可视化的技巧和 Python 中不同的可视化库,以及如何根据数据和图形类型选择最佳库。

数据可视化 101:如何选择 Python 绘图库

原文:https://towardsdatascience.com/data-visualization-101-how-to-choose-a-python-plotting-library-853460a08a8a?source=collection_archive---------18-----------------------

如何选择不同用途的绘图库

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

图片由作者提供(使用 Canva 制作)

“可视化信息可以给我们提供快速解决问题的方法。我们可以很快获得一个简单问题的清晰或答案。”—大卫·麦坎德斯

可视化数据是任何数据科学项目中必不可少的步骤之一。它可以更容易地找到模式,检测异常,并有效地交流您的结果。

然而,可视化数据的过程可能有点棘手。今天,有如此多的绘图工具和库,我们可以使用它们通过图表和颜色将数据变得生动。有些工具相当奢侈和昂贵。

那么,一个人怎么能决定用什么呢?

那么,这篇文章将——希望——帮助你回答这个问题。

在本文中,我们将介绍 Python 中 10 大绘图库;我们将浏览一些使用示例,以及如何为您的下一次可视化冒险选择其中一个。

但是,

在我们进入那个之前,让我们首先谈论我们能产生的两种类型的情节。

静态与动态绘图

在绘制任何信息时,我们都有可供选择的选项;我们既可以生成静态图,也可以生成动态图。

静态绘图

静态图包含显示两个或多个变量之间恒定关系的图形。也就是剧情一旦创建,用户就无法更改。在静态图中,用户不能改变图的任何方面。

动态绘图

当开发人员/设计人员希望用户与图进行交互,改变图的某些方面并更加熟悉用于创建图的数据时,可以使用动态图,也称为交互式图。

如何选择?

好的,你有一些想要可视化的数据,但是你不知道从哪里开始。让我来帮你。每当我开始一个项目,需要创建一些可视化,我经常问自己 4 个问题,引导我做出正确的选择。

Q1:我的目标平台/媒体是什么?

你需要决定的第一件事是你需要哪种绘图类型,静态的还是动态的?通常,静态图用于打印输出、技术论文或报告。在这种情况下,你需要告诉你的观众一些事情,而不是与情节本身互动。

但是,如果您在在线教程、课堂或任何 web 应用程序中使用该图,用户可以通过摆弄数据来更好地理解它或在其他地方使用它,那么您应该创建一个动态图。

Q2:我的数据公开了吗?

这是一件需要考虑的重要事情。如果您的数据是私有的,不能公开获取,那么您需要使用静态图。但是,如果数据存储在不需要特殊权限就可以访问的公共服务上,那么动态绘图可能是更好的选择。

问题 3:我的优先事项是什么?

一旦我决定使用静态还是动态绘图。我问自己,我的视觉化的优先顺序是什么?我需要它复杂很多层吗?回答这个问题有助于选择要使用的正确库。

[## 数据可视化 101:如何选择图表类型

如何选择最能描述数据的图表类型

towardsdatascience.com](/data-visualization-101-how-to-choose-a-chart-type-9b8830e558d6)

问题 4:我需要一种特殊的视觉化吗?

最后,我问自己,我需要什么样的策划?是简单的图表吗?条形图、柱形图、饼图或甜甜圈图?或者我需要绘制一些更专业的东西,比如网络或地图?

假设我需要可视化一般信息,然后使用任何提供我想要的图表类型的库。然而,如果我需要创建地图或网络,这将限制我的选择,并帮助我更快地做出决定。

[## 数据可视化 101:有效可视化的 7 个步骤

用引人注目的视觉效果讲述您的数据故事。

towardsdatascience.com](/data-visualization-101-7-steps-for-effective-visualizations-491a17d974de)

十大 Python 绘图库

Python 是数据科学和许多其他应用中最常用的编程语言之一。然而,由于它的流行,Python 有如此多的数据可视化库可供选择。选择的多样性既是一件好事也是一件坏事。

有许多选项意味着你可以选择与你的目标完全匹配的库,但是对于新加入这个领域的人和决定选择什么的专家来说,这可能太混乱了。

在这里,我将介绍 10 大 Python 库,以及如何和何时使用它们。我将这些库分为两类,用于绘制静态图表的库和用于动态图形的库。

让我们开始视觉化…

静态绘图库

Matplotlib

谈到 Python 中的数据可视化,我们不能不提到第一个也是最古老的 Python 可视化库, Matplotlib 。Matplotlib 是一个开源库,创建于 2003 年,语法接近 MATLAB。从那时起,图书馆得到了很多的爱和支持,直到今天。

许多 Python 包都是基于 Matplotlib 核心构建的。例如,Seaborn 和 Pandas 充当 Matplotlib 的包装器,允许用户用更少的代码行创建图形。

什么时候使用 Matplotlib?

  1. 如果你熟悉 MATLAB,使用 Matplotlib 会看起来很熟悉,并且会使你的转换更容易。
  2. 如果你的大部分数据是时间序列,那么使用 Matplotlib 会让使用和绘图变得有点复杂。
  3. Matplotlib 在处理静态 2D 图方面非常强大。然而,如果您想要绘制 3D 或交互式可视化,这将变得非常复杂。
  4. Matplotlib 是一个非常低级的库,这意味着需要编写更多的代码来实现可视化。
  5. Matplotlib 不是为数据探索目的而设计的,所以如果你的主要目标是这样做,你最好使用另一个库。

用法举例

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

海生的

Seaborn 是基于 Matplotlib 构建的库之一。它充当包装器,为用户提供 Matplotlib 的高级替代方案。您可以创建与 Matplotlib 相同的可视化,但代码行要少得多。

由于 Seaborn 是基于 Matplotlib 构建的,所以它包含了与 Matplotlib 相同的图表类型,此外还有一些很酷的图表,如热图和 Violin 图表。Seaborn 还可以用于使 Matplotlib 图表在视觉上更具吸引力。

什么时候使用 Seaborn?

  1. 我一直建议,如果你正在使用 Matplolib,你应该使用它来使你的可视化效果更好。
  2. 如果您开始使用 Python 和 DS,Seaborn 是一个简单明了的库,您可以用它来轻松创建令人惊叹的图表。
  3. Seaborn 提供了简单的定制方法来为您的图形添加您的触觉。它让您可以完全控制所创建图形的调色板。
  4. Seaborn 有许多你可以轻松使用的统计内置图,例如小平面图回归图

用法举例

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

普洛特宁

早在 1993 年,一本精彩的书出版了。图形语法为设计者和数据科学家提供了一个分层的规则指南,以创建漂亮、有意义和有用的数据可视化。

如果你以前使用过 R,那么 Plotnine 是用类似的语法构建的,是《图形语法》书中不同方面的实现,它基于流行的 R 库 ggplot

什么时候用 Plotnine?

  1. 使用 Plotnine 最直接的原因是,如果您正从 R 过渡到 Python,并且希望创建可视化而没有太多麻烦。
  2. Plotnine 允许用户通过明确地将数据映射到形成图的可视对象来容易地构成图。
  3. Plotnine API 允许您使用少量代码轻松创建不同类型的图表,而无需经常查阅文档。
  4. 使用 Plotnine 进行绘图是非常强大的,因为它使自定义绘图易于思考和创建。

用法举例

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

网络 x

NetworkX 是一个不仅仅用于可视化的 Python 库。相反,它是一个用来分析、操作和研究复杂网络结构的软件包。

NetworkX 是那些特定领域或特定区域的库之一;也就是说,您不能使用这个库生成任何图表。例如,您不能使用 NetworkX 创建条形图或饼图。

什么时候使用 NetworkX?

  1. 如果您正在处理图形或图论算法,使用 NetworkX 将允许您快速实现和分析这些应用程序。
  2. 如果你想研究不同数据点之间的关系。
  3. 如果你试图模拟和分析整个网络的性能。

用法举例

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

缺少编号

每当您开始一个新的数据科学项目时,您将需要执行一些数据探索以更好地理解您的数据。经常发生的一件非常恼人的事情是遇到丢失的数据条目。作为数据科学家,丢失数据条目是整个项目中最具挑战性的任务之一。

好了,失踪的人来了。它允许用户通过提供数据集的可视化摘要来测试数据集的缺失条目。因此,您可以根据变量之间的完整性和相关性对数据进行筛选和排序,而不是遍历一行又一行的数字。

什么时候用 Missingno?

  1. 如果您想加快和简化任何项目的数据探索阶段。
  2. 显示每个列、矩阵、热图和树状图中存在的值的计数。

用法举例

这里使用的数据集是。

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

动态绘图库

Plotly

Plotly 是一个基于 Javascript 的模块,用于生成和操作交互式可视化。使用 Plotly,您可以创建独特的图表,如树状图、3D 图表和等高线图。这些图表类型中的大多数不能通过大多数其他库生成。

此外,Plotly 有许多用于机器学习和数据科学的内置应用程序,这使得 ML 回归和 kNN 分类等标准算法的实现和可视化更加容易。

何时使用 Plotly?

  1. 如果您想从用 Python 创建交互式数据可视化开始,那么 Plotly 是一个不错的选择。它允许你创建自定义图表,没有任何麻烦。
  2. 您可以在 Plotly 中创建令人惊叹的动画,帮助您更好地交流数据。
  3. 如果您想要创建漂亮的地图、科学图表、3D 图表或金融图表。
  4. Plotly 允许您创建自定义控件到您的图表,以提供更多的交互式功能。

用法举例

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

散景

与 Plotly 类似,Bokeh 是一个基于 Javascript 的包,允许您创建令人惊叹的交互式可视化。此外,与 Plotnine 类似,散景是图形语法中规则的一种实现。

散景提供三种级别的控制,以适应不同的用户类型。最高级别允许您创建标准图表,如条形图、饼图、散点图等。中间层像 Matplotlib 一样提供一定程度的特异性,并允许您控制每个图表的基本构建块。最后,最低级别让您可以完全控制图表的每个元素。

什么时候使用散景?

  1. 创建漂亮的交互式可视化。
  2. 如果您想要执行数据转换,例如向拥挤的绘图添加抖动。
  3. 如果你想创造美丽的 2D 图形。但是,如果你想要 3D 图形,请使用 Plotly。

用法举例

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

闪光

Gleam 是一个 Python 库,灵感来源于 R Shiny 库。它允许 Python 开发人员为 web 创建交互式数据可视化。

Gleam 将所有这些放在一起,创建了一个 web 界面,让任何人都可以实时处理您的数据,从而比以往任何时候都更容易帮助他人理解和解释您的数据。

什么时候用 Gleam?

  1. 如果您想为 web 创建可视化,但不想处理 JS、HTML 或 CSS。
  2. 如果你想让你的用户实时控制你的数据。

阿尔泰尔

Altair 是一个基于 Vega-Lite 的简单、用户友好且一致的统计可视化 python 库。Altair 允许您仅用几行代码快速创建有意义、优雅且有用的可视化效果。

什么时候使用牛郎星?

  1. 如果您想要轻松的交互式数据可视化。
  2. 快速有效地对数据应用转换。
  3. 如果您想创建声明性统计可视化。
  4. 创建堆叠的、分层的、多面的和重复的图表。

用法举例

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

薄层

是一个漂亮的 Python 地理可视化库,用于绘制地图。follow 使用 fleet . js 的制图功能实现交互式地图可视化。

follow 使您能够放大和缩小地图,单击和拖动它们,甚至在它们上面添加标记。

什么时候用叶?

  1. 如果你想创建交互式地图,best 是你最好的选择。

用法举例

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

结论

数据可视化是开发人员或数据科学家将其数据传达给广大受众的方式。构建更好、更有效的数据可视化是每个数据科学家都必须努力发展的一项宝贵技能。

每当你想要创建一些可视化,这里有一个经验法则可以遵循,如果你是数据科学和 Python 的新手,并且只想创建静态图表,那么使用 Seaborn 。对于网络分析,使用 NetworkX 。如果你想创建交互式可视化来呈现,使用 Plotly ,但是如果你想在网络上使用这个可视化,那么使用 Gleam 。最后,如果你想创建交互式地图,叶子是你的朋友。

最后,无论您选择什么库,您都可以创建引人注目的可视化效果。记住,复杂并不总是答案。始终使用提供可视化所需特性的库。

数据可视化 102:制作数据表最重要的规则

原文:https://towardsdatascience.com/data-visualization-102-the-most-important-rules-for-making-data-tables-5b27d3a246e8?source=collection_archive---------47-----------------------

如何有效地使用表格来传达关于数据的信息?

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

图片来自米卡·鲍梅斯特

在之前的关于数据科学统计中的数据可视化的帖子中,我讨论了我认为绘制数据最重要的一条规则。在这篇文章中,我将继续讨论制作数据表的最重要的规则。我将把重点放在向其他人报告/交流发现的数据表上,而不是数据科学中表的许多其他用途,比如存储、组织和挖掘数据。

总而言之,图表就像句子一样,向浏览者/读者传达一个清晰的思想。另一方面,表格的功能更像段落,传达多个句子或想法来获得一个整体的想法。与通常提供一种思路的图表不同,表格可以更具探索性,为查看者/读者提供分析信息并从中得出自己的结论。

餐桌规则#1:不要害怕提供你需要的或多或少的信息。

段落可以用多个句子来传达一系列的思想/陈述,表格也不例外。一个人可以传达多条信息,观众/读者可以在他或她自己的闲暇时间浏览和分析,使用这些数据来回答他们自己的问题,因此可以根据需要随意占用空间。几页长的表格是公平的游戏,并且在许多情况下是绝对必要的(尽管经常被放在附录中,以供需要更深入了解的读者/观众使用)。

在我之前的数据可视化帖子中,我给出了这个条形图作为一个例子,试图为一个图形说出太多的语句:

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

图片来自 Linux 截图

这是相当于一个段落的信息,用表格来表示会更好。在表格中,读者/查看者可以自己按国家和年份浏览表格值,并回答他或她可能提出的任何问题。例如,如果有人想分析一个特定的国家是如何随着时间的推移而变化的,他或她可以很容易地用一个表格来完成,和/或如果他或她想分析比较某个特定十年的国家之间的移民比率,这也是可能的。在上图中,每个国家的子段在每个十年列的不同垂直位置开始,这使得很难直观地比较大小,并且由于每个十年有几十个值,后面的分析也很难直观地解读。

但是,与此同时,不要害怕将一句话或一张图表价值的数据传递到表格中,特别是当这些数据是你要说的核心内容时。有时,当一个想法至关重要时,作者会包含一个句子段落,同样,一个单独的陈述表也会有类似的效果。例如,为单个变量编写一个表确实有助于传达该变量很重要:

现在,有时在这些单语句实例中,你可能想要使用一个图表而不是一个表格(或者两者都用),我将在规则 3 中详细讨论这一点。

表格规则#2:保持列的一致性,以便于浏览。

我发现,当查看者/读者扫描表格时,他们通常下意识地假设一列中的所有变量都是相同的:相同的单位和值的类型。在行与行之间改变一列的值可能会让你的读者在看的时候感到困惑。例如,考虑这个虚构的研究数据:

在该表中,每行表示不同的值和/或单位。例如,沿着控制栏往下,第一栏是以年为单位的平均年龄。第二列切换到中值年龄,这是一个不同于平均值的值类型(尽管使用相同的年数单位)。最后两行表示男性和女性的数量和百分比:两者都是不同类型的值和不同的单位(数量和百分比不同于年份)。这可能会让查看者/读者感到不舒服,因为他们经常希望列具有相同的值和单位,并且很自然地将它们进行比较,就好像它们是相似类型的值一样。

我建议像这样转置它,这样列代表相似的变量,行代表两组变量:

表格规则#3:不要害怕使用图表来表达数量、比例或尺度

像规则#1 中的性别表这样的表用数字传达相关信息,但是数字本身并不能直观地显示值之间的差异。

图表擅长直观地描述数据的大小、比例和/或规模,因此,如果在这个例子中,重要的是传达女性比男性的“一些关键结果”大多少,那么基本的条形图可以让读者/观众看到女性的百分比是男性的两倍以上。

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

作者制作的图表

现在,为了传达这种视觉上的清晰,图表失去了精确关联精确数字的能力。例如,只看这个图表,读者/观众可能不确定男性是 36%、37%还是 38%。人们已经开发了许多绘图策略来处理这种情况(从使网格线更清晰,在线段的顶部、旁边或周围写下准确的数字,等等),但是在既需要传达准确的数字又需要传达它们的大小、比例或规模的情况下,结合图表也可以很好地工作:

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

作者制作的图表

最后,鉴于表格可以传达多种陈述,请随意使用几个图表来描述一个表格的大小、比例或规模。不要试图将一个多语句的表过载到一个单一的、难以理解的图表中。将您试图与该表联系起来的每一项陈述分解,并在一个图表中分别描述。

结论

如果图表是句子,那么表格的功能就更像段落,传达大量信息,表达不止一种思想或陈述。这给你的读者/观众提供了探索数据的空间,并让他们自己解释数据来回答他们的任何问题。

不幸的是,我自己没有这张图表使用的数据,否则我会为它制作一个表格。

【https://ethno-data.com/rules-for-tables/】原文发表于此:。有关该网站和其他文章的更多信息,请访问https://ethno-data.com/

也感谢《数据科学》杂志发表这篇文章。关于他们工作的更多细节,见

数据可视化和可访问性:三个推荐读物和顶级技巧

原文:https://towardsdatascience.com/data-visualization-and-accessibility-three-recommended-reads-and-top-tips-9c5e862b464e?source=collection_archive---------50-----------------------

你可以制作一个你认为是有史以来最漂亮的数据可视化——但对许多观众来说,它可能几乎毫无用处。了解一些使数据可视化对每个人都更好的关键方法。

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

照片由丹金Unsplash 上拍摄

本文的许多读者可能每天都在做的事情是创建不同类型的数据可视化。然而,我们可能不会总是停下来想一想,患有不同残疾的人是否会发现这些可视化是可访问的和有用的。

为了更多地了解这个重要的问题,我从专家那里找到了一些关于这个主题的资源,在这里与你分享。它们非常值得你花时间去完整阅读。我还会强调一些你可以在自己的工作中使用这些作者的顶级技巧的方法。

推荐阅读#1

“可访问数据可视化设计简介”,开发者兼设计师莎拉·l·福斯海姆

提示:“可视化任何数据时,使用标签和图例很重要。如果可能,尝试在上下文中添加标签。…看到写出来的值也意味着:用户不必猜测、悬停或进行计算来获得准确的数字,[并且]不必完全掌握视觉效果来理解正在发生的事情。”

**使用它:**在 Alteryx Designer 交互式图表工具中,您可以向图表的各个部分添加标签,以显示条形图或饼图各个部分的实际值和/或标签。

例如,在下面的图表中,我在饼图的各个部分添加了区域标签,并隐藏了图例,因为它变得多余了。现在,区域信息立即可用,而不是要求查看者来回查看颜色的含义。即使有人不能感知图表,他们仍然可以获得数字信息。

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

推荐阅读#2

“可访问的数据即更好的数据即”, 作者 Amy Cesal(在 Cole Nussbaumer Knaflic 的博客上的客座博文,用数据讲故事的创始人兼首席执行官)

置顶提示:“空白是你的朋友。当信息过于密集时,图形会让人感觉难以理解。在图表的各部分之间留出间隙会有所帮助。明智地使用留白有助于区分不同部分,而不仅仅是依靠颜色,从而提高可读性。这也可以通过帮助用户区分不同颜色之间的差异来补充可访问的颜色选择。”

**使用它:**如果空白能帮助你的浏览者从你的视觉化中获得价值,那么它就不是浪费的空间!在 Alteryx Designer 中可以做到这一点的一种方法是向条形图中添加更多的空白,如果其中有更多的空白区域,可能会变得更加易读。

默认情况下,每个条形将为其潜在宽度的 80%;将该数值增加到 100%会使条形相互紧靠,它们之间的间隙为零。减小条形宽度可以使一些图表更具可读性。下图中的条形设置为 65%宽度。

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

交互式图表工具中的条形图格式选项

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

这张图表还使用了一个副标题,总结了其创建者的主要信息,这有助于人们从可视化中快速获得关键信息。

在你的可视化或报告中加入更多的细节总是很诱人的,但是留白和简单让你的信息更容易被访问。

推荐阅读#3

红绿色盲的五种设计方法 ,“安迪·基尔克

****提示:“颜色的含义由来已久,并被广泛使用,尤其是在金融或企业环境中,但尽管它们为许多观众提供了某种直接的含义,但大约 4.5%的人口是色盲(8%的男性),其中红绿色盲是最常见的形式。这意味着很大一部分观众可能无法感知这种重要的视觉编码。”

使用它: Kirk 的文章对某些颜色组合的文化意义提供了有趣的见解。例如,交通信号灯的红-黄-绿颜色对一些文化背景的人来说意味着“停-小心-前进”。

但是,即使这些含义看起来适用于我们的数据可视化,我们可能会无意中阻止一些人体验可视化。我们必须谨慎选择颜色,以确保患有各种色盲的人能够清楚地看到它们。更重要的是,确保颜色不是你在数据可视化中传达意义的唯一方式。

如果你选择了自己定制的调色板或公司的颜色,而不是提供的调色板,你可以使用在线模拟器如科布利斯来检查你完成的图形的易理解性。

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

上图所示的同一张图表的三个视图,由科布利斯针对不同类型的色盲进行模拟。

关于这个主题还有很多需要了解的,我强烈建议全文阅读所有这些文章。

用上面的播放器听播客片段。

另一个了解更多的方法是:我们刚刚在 Alteryx 发布了一集关于可访问性的 Alter Everything 播客。Alteryx 工程经理 Steve Tomasak 与可访问性和本地化团队负责人 Jeremy Likes 和可访问性产品经理 Kyle Waterworth 进行了交谈。杰里米和凯尔都使用辅助技术,并分享他们的个人经历。他们还讨论了通用设计背后的关键思想,并讨论了一些创新的辅助技术。

听一听这一集,了解关于这个主题的更多信息,这对每个塑造和使用技术的人都很重要!

最初发表在 Alteryx 社区数据科学博客上。在 Alteryx 数据科学门户上找到更多资源。

如何快速让你的图表看起来美得惊人

原文:https://towardsdatascience.com/data-visualization-animate-bar-graphs-df9ca03a09f2?source=collection_archive---------21-----------------------

Excel 中的数据可视化和动画以及后期效果

那么,您刚刚完成了对数据的检索、处理和分析。你拿起你的数据,决定把它制成图表,这样你就可以向别人展示你的发现。你点击“图表”,然后……

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

布鲁斯·艾隆哈特拍摄的照片

丫看起来有点无聊。我们想要的是更有趣、更有活力的东西。大概是…这样:

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

布鲁斯·艾隆哈特拍摄的照片

是啊!现在看起来真棒!让我们看看如何快速制作这个动画。

先决条件

好吧,这是你需要开始做的:

第一步:让你的 Excel 图表看起来更好

所以,让我们做一些事情来使我们的图表看起来更好。我们可以先把文本放大一点,然后改变一下图表的样式。

现在对于样式,我不需要 y 轴,相反,我只需要图形中每个条形顶部的总数值。我们可以很容易地在 excel 中完成,

  1. 选择图表
  2. 点击’画笔图标’
  3. 在’样式下,我们可以找到我们正在寻找的图形样式。对我来说,这是第二次,但对你来说可能不一样。

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

布鲁斯·艾隆哈特拍摄的照片

下一步只是让字体变大,然后把字体改成你喜欢的样子。移除任何背景线(您可以选择并删除它们)。或许可以把酒吧变得更宽。在我完成编辑后,我的图表看起来像这样。

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

布鲁斯·艾隆哈特拍摄的照片

现在不要担心文本太浅,稍后,我会添加一个更深的背景色,让它看起来更流行。

尝试你想要的设计,尽情发挥你的创造力。

步骤 2:在 Adobe Illustrator 中将 Excel 图表分解成组件

在 Adobe Illustrator 中创建新项目,并将大小设置为 1920 x 1080。然后,只需将您刚刚从 Excel 制作的图表复制粘贴到 Illustrator 中。

该图像将复制为矢量图像,这意味着您可以调整其大小,而不必担心质量损失。调整图像大小,直到它适合您想要它在画布上呈现的方式。请参见下文,了解如何调整它的大小。

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

布鲁斯·艾隆哈特拍摄的照片

将每个条形拆分到它们自己的层中

如果你打开’图层’面板(你可以点击 f7 或窗口- >图层打开它),你应该看到’图层 1 。如果我们打开它,我们应该看到一个名为“ <剪辑组> ”的图层,其中包含了我们需要的所有条。

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

布鲁斯·艾隆哈特拍摄的照片

现在他们都粘在一起了。

1.选择**-<剪辑组>-->右键点击>选择释放剪辑蒙版**。这将创建一个’复合路径’层。

2.选择该层,再次右击该栏,选择’释放复合路径’。现在我们把所有的小节都分开了。

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

布鲁斯·艾隆哈特拍摄的照片

创建五个新层(每个条形一个),并将每个条形层拖到新层中。给新的条形层重新命名,以便以后在 After Effects 中更容易使用。

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

布鲁斯·艾隆哈特拍摄的照片

将条形值拆分到一个新层中

再创建一个名为“值”的图层,将所有的数值条移入该图层。确保不要移动任何年份值,我们只希望条形值在那里。

移除不必要的层

现在我们基本上完成了。我们需要做的最后一件事是移除第 1 层中我们不需要的任何子层。

一个简单的方法是点击图层旁边的小图标。如果某样东西从 Illustrator 中消失了,那么我们希望保留它如果看起来什么都没有消失,那么我们可以移除它。这样做的目的是删除白色背景,这样我们就可以在后期添加我们自己的特效了。如果你想保留白色背景,请随意进入下一步。

完成后,将第一层的重命名为轴**,这样在后期效果中更容易识别。**

第 3 步:动画效果

创建一个新的 After Effects 项目,并将大小设置为 1920 乘 1080。我的持续时间被设置为 5 秒,但如果你愿意,你可以设置为 3 秒。接下来,我们需要导入刚刚创建的 Illustrator 文件。我们可以通过双击项目面板并选择我们的 AI 文件来做到这一点。

确保导入种类设置为构图并且进尺尺寸设置为图层尺寸。然后,我们只需点击 after-effects 自动为我们创建的新构图,就可以开始工作了。你也应该在合成面板中看到我们所有的图层。

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

布鲁斯·艾隆哈特拍摄的照片

每层都有一个锚点。这些锚点是我们应用的效果发生的点。我们需要将这些锚点移动到每个条的底部,以便动画从该点开始。

为此

  1. 选择特定的条形对象(例如:条形 1)
  2. 在工具栏中选择锚定工具。
  3. 然后,只需将锚点移动到工具栏的中间底部。对每个条形重复此操作。你可以在下面看到一个我是如何做的例子。

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

布鲁斯·艾隆哈特拍摄的照片

将条形图从 0%缩放到 100%

一旦我们把锚定在正确的位置,我们就可以开始制作动画了。这部分真的很简单。

在“合成”面板中:条形层(例如:条形 1)>变换>缩放。

  1. 点击秤选项上的链图标取消秤的链接。这就解除了宽度和高度之间的联系。
  2. 点击秤选项旁边的秒表图标。这为我们的动画创建了一个关键帧。
  3. 将高度设置为 0%。在比例选项中,高度是第二个值。
  4. 将时间轴上的擦洗器移动到 7 帧(或者您希望动画持续多长时间),并将高度调整回 100%。这将自动为我们创建一个新的关键帧,并在 7 帧内使我们的生长条从原始高度的 0%变为 100%。

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

布鲁斯·艾隆哈特拍摄的照片

添加反弹动画

反弹动画使我们的酒吧到达顶部时,它会超过,然后再下降。这使得动画看起来更加流畅生动。

为此,在按住 ALT 键的同时,点击秤台**旁边的秒表图标。**时间线上将打开一个文本区。将以下内容复制粘贴到那里。

// Inertial Bounce - Created by Animoplex: [www.animoplex.com](http://www.animoplex.com)
// Original Version: [http://www.graymachine.com/top-5-effects-expressions/](http://www.graymachine.com/top-5-effects-expressions/)
// Modified expression for a smoother bounce effect and easier editing. Use this on any property with two keyframes to get a nice bounce effect that is based on velocity of the value change. Perfect for a scale from 0 to 100 or a speedy rotation that needs some extra life. Adjust amp, freq and decay values to tweak the effect. Amp is intensity, freq is bounces per second, and decay is the speed of decay, slow to fast.// Variation Aamp = 5.0; freq = 2.0; decay = 4.0;n = 0;
if (numKeys > 0) {
  n = nearestKey(time).index;
  if (key(n).time > time) { n--; }
}
if (n == 0) { t = 0; }
else { t = time - key(n).time; }
if (n > 0 && t < 1) {
  v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
  value + v*(amp/100)*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
}
else { value; }

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

布鲁斯·艾隆哈特拍摄的照片

恭喜你!困难的部分已经过去了,现在我们只需要做一些复制粘贴和修复一些东西。您现在应该会看到类似这样的内容:

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

布鲁斯·艾隆哈特拍摄的照片

将粘贴运动效果拷贝到其他条

如果您关闭我们刚刚处理的组件的下拉菜单并再次选择它,您可以在键盘上键入字母“U”来查看您已更改的属性。

  1. 这样做,并选择我们刚刚制作的两个关键帧。
  2. Ctrl+C 或 Cmd+C 来复制它们。
  3. 选择其他每个条形构件,并将其粘贴到每个构件上。

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

布鲁斯·艾隆哈特拍摄的照片

酒吧的移动时间

打开我们刚刚制作动画的所有酒吧的所有属性。我们看到每个条形的动画同时出现。要解决这个问题,我们只需要移动每个条形的关键帧动画,使其在最后一个动画结束时开始。

对我来说,第 5 根棒线是我在图上的第一根棒线,第 1 根棒线是我最后一根棒线。所以对我来说,我只需要像下面这样移动它们,但你可能需要以不同的方式移动它们。

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

布鲁斯·艾隆哈特拍摄的照片

动画显示条形值

动画开始时的值很奇怪。相反,让它们出现在动画的结尾会更好。

  1. 点击“值”组件>变换>不透明度
  2. 点按秒表并将关键帧设定为 0%
  3. 我们希望不要在动画接近结束时才开始动画制作,所以把你的时间擦洗器放在最后一个条形动画开始和结束的中间。您可以通过选择“不透明度”属性最右侧的菱形图标来手动创建关键帧。
  4. 将搓擦器移动到最后一个条形动画的末尾,并将不透明度设置回 100%。现在,这些值将出现在动画的末尾。

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

布鲁斯·艾隆哈特拍摄的照片

添加背景颜色

  1. 图层>新建>实体…
  2. 挑选你最喜欢的颜色。
  3. 在构图面板中,将背景拖到底部,再次查看你的图形。

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

布鲁斯·艾隆哈特拍摄的照片

你完了!

漫威看着你美丽的作品。

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

布鲁斯·艾隆哈特拍摄的照片

如果你喜欢这个,可以考虑读一些更酷的东西,比如如何在 Python 中处理丢失的数据

[## 机器学习——处理缺失数据

开始使用数据前如何清理数据的指南。

towardsdatascience.com](/machine-learning-handling-missing-data-27b09ab146ba)

或者说三文鱼怎么可以用一个神奇的力量回到家

[## 三文鱼是怎么回家的?

原来他们不用谷歌地图!

medium.com](https://medium.com/illumination/how-do-salmon-get-back-home-48f2ab445568)

数据可视化受众和场景

原文:https://towardsdatascience.com/data-visualization-audiences-and-scenarios-ffe64adcd364?source=collection_archive---------39-----------------------

数据科学/数据分析/教育

在数据可视化中,您可能会面临三种情况

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

来源

无论你是在做多元分析还是构建深度学习神经网络,数据可视化可以说是任何数据职业中最重要的部分。我个人更喜欢数据的分析而不是可视化,但是,如果最终用户不理解我正在分析的数据,那还有什么意义呢?

数据可视化是数据职业的一个有趣的部分,因为它是职业中唯一可以留给解释而不是纯粹事实的部分。当然,你比较销售额的条形图是正确的,但是如果它是一个圆形图,也许对最终用户更有意义?数据可视化是这个职业的一部分,我继续在这方面进行一些额外的实践,但是,鉴于我所经历的所有错误和实践,我想向我的读者和其他数据专业人士/学生提供一些数据可视化。让我们开始吧!

免责声明:我不是全职的数据专家,我只是简单地转述我在暑期实习和个人实践中的经验。这并不是要告诉你你到底需要知道什么,而是从我的经历中给你一些实用的建议。高级技术信息请查看 走向数据科学 。如果您对一些有助于数据可视化的建议感兴趣,请继续阅读!

以最终用户为中心进行创作

我收到的关于数据可视化的最好的建议是“以终端用户为中心进行创建”。正如任何创意人员在创作一件艺术品时都了解他们的受众一样,数据专业人员在创作可视化作品时也是如此。从某种意义上说,可视化是数据的艺术品。我们花费大量时间构建模型、进行统计分析和清理数据。没多少人懂那部分专业,但每个人看到一个好图就懂了。考虑到这一点,让我们来看看一些观众:

首席执行官/高级管理层

首席执行官、首席运营官、首席财务官等。

除非你是中级数据管理人员或是高级分析师,否则你可能最少与这一组人打交道。这个群体往往年纪较大,经验丰富,技术不如分析师娴熟,因为这不是他们的工作。执行管理层是管理公司的人,他们需要快速清晰的概述。他们可能希望时不时地钻研数字,但大多数时候,他们只是需要高层次的观点来快速做出决策。Power BI 将是这些报告的一个好工具,因为它允许快速创建报告,而不是复杂的仪表板。

二。上层管理

营销副总裁、销售副总裁、IT 总监等。

你可能会比管理层更多地与这个团队合作。这个群体往往是中老年人,经验丰富,拥有高于平均水平的技术技能。他们更喜欢钻研数字,但在大多数情况下,仍然喜欢保持高层次的观点。Tableau 对这个群体来说是一个很好的工具,因为这些经理喜欢按照自己的意愿挖掘数字。

三。中层管理人员

营销自动化经理、销售开发经理等。

这是你最常与之共事的群体之一。这群人更年轻,经验更少,但技术更娴熟。成长在信息时代初期的他们,比其他群体更有兴趣挖掘数字。Tableau 非常适合技术含量较高的职位,而 Power BI 则适合技术含量较低的职位。

四。专业职位/个人

BI 开发人员、网络分析师、客户开发代表等。

这是另一个你会花大量时间与之共事的群体。许多集中的职位会要求你为他们拉指标。这个团队非常年轻,没有什么经验,但是技术能力很强。任何报告或可视化工具的工作,因为他们可能会理解它!

数据可视化场景

现在,我不想只告诉您不同的最终用户组,而是想展示一些示例,说明我如何使用相同的数据为这些不同的用户组创建报告。通常,你会收到一封电子邮件,有人会问:“嘿 _____,我们能从这些数据中学到什么,我们的表现如何?”。这就是你将得到的所有指导,所以这里有三个例子,是我在创建它们时的思考过程。为了实现这些可视化,我使用了格雷戈利·史密斯在 Kaggle 网站上发布的视频游戏销售数据集。在这些情景中,您是一家视频游戏公司的首席数据分析师,工作时间接近财年结束。许多利益相关者都很好奇他们做得如何,以及他们可以做些什么来改进。让我们看完这些报告吧!

假设,我们公司拥有这个数据集中的所有游戏,这是一个很好的商业模式

I .全球销售报告:高级管理层

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

对于这份报告,我们视频游戏公司的首席执行官给我们发邮件说,“你好 ____,我想知道我们的表现如何,谢谢”。在为高管创建报告时,我们需要考虑的第一件事是,“我们如何尽可能简洁、高水平地呈现重要信息?他们需要知道什么?”。我们的首席执行官想知道我们的表现,所以让我们先解决这个问题。由于这是一家全球性公司,他们可能想知道总销售额,以及三个地区之间的销售额。可视化时间序列的最佳方式之一是折线图,所以让我们用过去 20 年的全球销售额以及所有三个地区的销售额制作一个折线图。首席执行官可能也想要一些能帮助他们做出重大战略决策的见解。由于流派是一个重要的跟踪指标,让我们跟踪它的表现,并把它放在报告中。最后,他们可能需要了解每个地区的独立表现,这样他们就可以根据需要推出基于绩效的激励措施。让我们在饼图中包括每个地区的总销售额。搞定了。那么这份报告提供了什么呢?你可能会注意到这都是长期的、大量的信息。根据这份报告,我们建议首席执行官们应该专注于开发一些动作游戏,并在北美进行市场推广。营销也应该遵循他们在 2008 年所做的,因为那是销售的最高点。在真实的数据集中,将会有更多的信息来做出决策,而不仅仅是少量的变量,但是对于我们的目的来说,这是可行的!进入下一个报告!

二。全球销售报告:营销副总裁

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

接下来,北美全球营销副总裁给我们发邮件。“嘿 ____,我正在为我们的 R&D 团队提出一个请求,以决定我们希望我们的下一个游戏是什么。介意拉一些数据发给我吗?”。我们开始工作吧!我们知道,因为这是全球营销副总裁,他们可能想知道指标在全球的表现,以及仅与产品或产品销售相关的指标。让我们先来总结一下北美相对于全球的销售情况,因为他们的第一要务是北美。在类型的话题上,让我们也想象一下不同的类型在每个地区是如何表现的,来感受一下全球营销战略的前景。平台是另一个重要的变量,因为合作关系很昂贵,所以让我们看看每个平台在美国的销售情况。最后,让我们也来看看前 10 名最畅销的游戏,看看哪些是热门的,哪些一直是热门的。搞定了。这些都是很好的指标,因为它们代表了北美和全球的表现。我们的建议应该是考虑用我们最新的技术为 Xbox 和 PlayStation 制作一些动作游戏。此外,我们在角色扮演游戏方面表现不佳,但日本在这方面表现出色。我们应该建议我们的副总裁打电话给日本的营销副总裁,从他那里获得一些关于他们如何营销和开发角色扮演游戏的想法。那应该很好,让我们开始最后的报告吧!

三。全球销售报告:欧洲使命召唤项目经理

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

快到中午的时候,《使命召唤》在欧洲的首席项目经理给我们发了一封电子邮件。“您好 ______,我想知道我们是否可以获取一些销售指标,谢谢”。显然,这封邮件有点模糊,所以我们需要使用我们的数据和直觉来做出一份好的报告。首先,我们来看看《使命召唤》在欧洲的表现与全球其他地区相比如何。接下来,我们来看一下各个地区的使命召唤销售总额。最后,我们来看看每款《使命召唤》游戏的表现如何。请注意,我们只包括了关于使命召唤的指标,因为使命召唤项目经理不需要在其他指标上浪费时间和内存。我们就给他使命召唤指标吧,因为这是他的专长。我们应该建议欧洲项目经理联系各自地区的其他两位项目经理,弄清楚 2015 年发生了什么导致销售额如此急剧下降。我们还应该建议他们联系“使命召唤:黑色行动”的开发者,并创建另一个系列,因为该系列表现非常好,五个顶级使命召唤游戏中的三个都是“黑色行动”系列的一部分。

结论

咻!这是一个很大的可视化!希望这能让你对创建报告的计划和思考过程有所了解。这不仅仅是把图表放在纸上那么简单,而是为每个最终用户创造独特的东西。在创建可视化效果的时候,一定要考虑到最终用户,他们会注意到的,你也一样。随时可以继续回来这个故事做参考!保持安全,快乐观想!

"注:这些报告是使用 微软 Power BI创建的

查看我的其他一些故事!

面向有志分析师的三大技术平台

成功实习的 10 个小技巧

作为营销分析实习生我学到了什么

营销分析实习生的一天

要联系我或接收更多内容,请在 Twitter 上关注我@BMNAnalytics**

获得有意义见解的数据可视化要素

原文:https://towardsdatascience.com/data-visualization-essentials-for-meaningful-insights-4143479c7520?source=collection_archive---------44-----------------------

要做的事情,按这个顺序

如果你是商业智能分析师、审计师、数据工程师或任何关心决策“数据”方面的人,你已经处理了大量的图表和绘图。Tableau、Qlik、Power-BI、Python、R、Plotly 等工具。主宰这个世界,让从原始数据中获得洞察力变得容易(非常感谢!).正如我在上一篇文章中提到的,像专家一样进行预处理,工作的附加值来自于图表提供的洞察力,而不是图表本身。本文主要关注各个步骤中的检查点,以确保您的仪表板有效且有洞察力。

要求证明准确性和完整性

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

来源

仪表板的第 0 步总是检查源数据的准确性和完整性。如果你没有自己提取数据,而是从其他地方获得的,打电话/发邮件/发短信/WhatsApp,获得令人信服的证据。

要求摘录用于提取这些数据的逻辑。以下是一些有帮助的问题:

  • 所有的滤镜都是按照你的问题设置的吗?
  • 时间段是否正确?
  • 参数的含义与您认为的一样吗?
  • 这些参数是您想要观察的指标的正确代表吗?

这是你准确性的证明。

通常,数据查询结果会在屏幕上显示一条消息,说明发现 X 行结果- 这应该是您的数据提取中的数字。您可以将其与之前类似提取中生成的数据总量/数据进行比较,以检查这是否是一个可信的数字。

这是你的完整性证明。

对于每张图片,获取一个上下文

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

来源

让我们假设您手头有经过准确性和完整性验证的数据。现在,您已经构建了一个漂亮的数据图表。要从任何一个图表中得出洞见(姑且称这个图像),总要有第二个图表让场景完整有意义(姑且称这个上下文)。永远不要相信独立的数字,不管它们看起来有多可怕。

看到一个图像的那一刻,寻找一个语境

大背景

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

总是看到更大的画面说什么。下面是一些如何在大图中寻找上下文的例子,用 高亮显示 介词 *你的上下文应该包含。*考虑以下例子:

  1. 如果您发现一台机器生产了您所有缺陷零件的 90%(图片),那么在您继续修理这台机器之前,您还需要第二张图表来显示这台机器生产了多少个***(上下文)*。如果它也生产 90%的零件,当然,它有更多的零件是有缺陷的,这意味着你所有的机器都需要修理。**
  2. 如果你看到你的公司一个月赚了 10 万美元*(图片),看看你的市场份额与市场上其他拥有类似目标**客户群(上下文)的公司的*
  3. 如果你生产的 100 万个零件有缺陷*(图片),看看机器上每 100 万个中有多少个有缺陷**,你生产了多少个(上下文)*。**

记住上下文看起来像一个百分比或比率。一个数字看起来像是在煽动情绪。以数据大师、Gapminder.org、**汉斯·罗斯林、**的创始人 Factfulness 为例

没有上下文:2016 年有 420 万婴儿死亡。

很可怕,不是吗?

有语境:2015 年 450 万,2014 年 440 万,1950 年 1400 万。我们突然比以前少了 1000 万死亡婴儿。我们这样做是好是坏?

4.如果有人试图向你出售没有背景的图片信息,快跑!

时间背景

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

  1. 时间背景显示了你观察的季节性和趋势。*例如:*每周三的数据点与一周的其他时间相比 高吗?它们是否每周都比前一周(趋势)高/低?
  2. 自昨天/上个月/去年同季的以来,你的指标有什么变化?你是不是因为六月的太阳高,销量就高?你做了一些可以重复的伟大的事情吗?
  3. 时间提供的另一个细节是变化率。 您的指标有多动态?

在对您的原始数据进行进一步研究时(例如使用机器学习),记住对 和进行标准化,从图片中移除 季节性和趋势。

寻找模式

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

来源

  1. 一旦你有了图像和它们的背景,开始寻找模式。最好的开始方式是用你的眼睛在不同的变焦水平下观察它们,每次至少取两个不同的参数。

例如,假设您有以下参数:

10 个产品的利润,产品的投资额,部门主管的身高,这些产品的研发收入

将这些参数中的每一个与其他参数进行对比,看看它们能告诉你什么。视觉信息再多也不为过。问问你自己— “什么是因”**“什么是巧合”。(是啊,这家伙的身高可能是个巧合……)

2.寻找相似大小、相似范围的参数,看看它们在不止一个上下文中是否有共同的行为。这可能(不是必须)有助于确定什么是巧合,什么是因果关系。

确保你的图表代表了所有重要的信息

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

来源

把事物分为黑与白,好与坏,1 与 0,这是人类的倾向。在将这种趋势应用于数据表示之前,请查看您的黑白桶是否代表了所有信息。例如,看下面的问题:

  • 班上的学生是好的、坏的、一般的还是你需要技能水平和学科信息?
  • 添加主题信息不会改变你的洞察力,但会减慢你的图形速度吗?
  • 月表示是足够的粒度,还是需要周时段?

创建平均存储桶时要非常小心。如果你用它们来比较,注意比较极端与极端,手段与手段。将异常情况排除在平均水平之外。

一些信息比另一些更重要

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

来源

为了检查您选择的参数是否是正确的代表,检查移除对 KPI 或指标产生最大影响的参数。这一组或这几组参数是最重要的参数,您应该希望在这些参数的基础上构建您的谈话要点。

说了这么多,注意,现实世界中,因果比我们想象的要复杂得多。不要被眼前最简单的解释所迷惑。在有效解决问题的道路上,这是最难也是最诱人的障碍。

人类的数据可视化:我如何把我的数据变成水彩艺术

原文:https://towardsdatascience.com/data-visualization-for-humans-how-i-turned-my-data-into-watercolour-art-651d6acb16a3?source=collection_archive---------68-----------------------

你有没有听过一个陌生人的谈话,感觉他们在表达你自己都不知道的想法?或者有过,但无法用语言表达?

虽然这听起来很有戏剧性,但这就是我在观看 Giorgia Lupi 的关于数据人文主义的 TED 演讲时的感受。Giorgia Lupi 是一位来自意大利的建筑师兼创始人,她的公司的整个交易是帮助公司以直观美观的方式可视化数据。我所说的漂亮,不仅仅是指饼图上的所有切片都来自同一个颜色家族。

总结一下我对数据人文主义的理解(Giorgia,如果你正在阅读这篇文章,请随意在评论中烤我),这是一个处理数据的框架,旨在让过程和结果变得有趣,让一个完全没有数据背景的人可以理解。

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

数据人本主义还寻求捕捉典型报告指标领域之外的数据点。例如:当可视化一名年轻患者的自身免疫性疾病医疗保健经历时,除了捕捉血小板计数、皮肤瘀伤的强度以及患者服药的时间,Giorgia 还找到了一种方法来整合家庭拥有积极时刻的天数、家庭成员必须出差工作的天数以及每天的恐惧强度。

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

完成的作品!查看更多关于瘀伤的信息:我们在这里看不到的数据:http://giorgialupi.com/bruises-the-data-we-dont-see

Giorgia 的工作激发了我为自己的数据创建可视化的尝试,我已经记录了几个星期了(这是一件完全正常的事情)。这是我在每周开始时做的一份非常简单的每日清单,包括锻炼、学习法语、散步、和家人一起出去玩等等。大多数时候,我有 7-9 件想做的事情,如果我们诚实的话,我可能在一个好的日子里完成 5-6 件(在我从未去过网飞的周末,我会完成 0 件)。如果你还没看,那就别看这个了,马上去看。)

这是我过去 3 周生活的一个形象化的描述,还有一些关于每周亮点和不足的注释。

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

手绘水彩,然后在 Photoshop 中扫描和数字增强,供您欣赏👩🏻‍💻

每周用一束花代表,每次活动用一朵花代表(健身、家庭、美食等。).某项活动我做得越多,它的花瓣就越多,当我达到一周的目标时,最多能有 5 片花瓣。

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

我在过去 3 周内跟踪的目标和活动

我有一个愿景,我的花束会随着我的成长而“成长”,花的组成会随着我建立更强的习惯和发现新的兴趣而改变。例如,在我实验的第二周,我有了第一次数字家庭聚会,并决定每周至少有一次家庭聚会。因此,我添加了一朵新的花(紫色鼠尾草),并开始跟踪它前进。

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

疯狂背后的数学。

我发现的最初趋势之一——尽管现在下定论还为时过早——是我越来越擅长从清单上划掉一些事情。我想追踪的东西也越来越多样化。随着我越来越坚持锻炼、约会之夜、和家人在一起、寻找新的爱好(比如 Photoshop!我可能学过也可能没学过这篇文章怎么用 PS)。

通过艺术可视化我的数据激励我采取比我以前的列表和复选框方法更好的行动。这是因为如果我错过了一天,我就无法找回那片花瓣——即使我一周的其余时间都很完美。相反,当我完成了所有的清单时,我会很兴奋地看到我的花束在周末会是什么样子,会不会比前一周更满。我没有纳入但在未来的迭代中探索会很有趣的事情是跟踪我试图打破的坏习惯(即玩我的头发、睡懒觉、叫外卖)并拿走一片花瓣或添加一个符号来代表我做这些事情中的一件。

这种数据人文主义的实践激励我每天都尝试着带着它,希望有一天我的生活会变成普西塔里的花束(我甚至满足于 Loblaws)。

说真的,你见过他们吗?它们太漂亮了。

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

在 Pusitari 的 150 美元,这个可爱的安排可能是你的。你可以以后再谢我

不要脸的 plug:如果你对自己的数据可视化感兴趣,或者想了解更多关于这个过程的信息,可以访问我在🥳的新公司

机器学习的数据可视化

原文:https://towardsdatascience.com/data-visualization-for-machine-learning-d1f906664f56?source=collection_archive---------54-----------------------

理解数据是机器学习中非常重要的课题之一。在现实世界的问题中,我们会得到大量的原始数据,我们需要从这些数据中获取有意义的信息来解决问题。

机器学习有两种问题。回归和分类。考虑一个要求我们预测房子价格的问题。这里我们需要预测一个数值。这个问题就变成了回归问题。有时我们需要做出“是”或“否”的决定。这是一个二元分类问题。有时候我们需要预测一个类。考虑这样一个问题,我们需要预测像猫、狗、马等动物。这是一个多类分类问题。

每当我们为监督学习的问题获得数据时,我们就会获得属性和标签。属性是自变量,我们必须用它来预测标签或因变量。属性被称为输入、预测、特征、独立变量。标签被称为输出、目标、结果、因变量。如果标签是分类的,问题就变成了分类问题,如果是数值的,问题就变成了回归问题。

当你得到任何问题的数据时,都会有很多属性。我们需要从这些属性中选择特征。问题是当我们得到数据时,有许多相关和不相关的属性。我们需要检查这些属性与输出的相关性。我们需要根据与输出数据的相关性来选择特征。我们需要区分可以选择的好的和坏的属性。

机器学习或建立预测模型中最耗时的步骤之一是特征选择或特征工程。

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

斯科特·布莱克在 Unsplash 上拍摄的照片

研究数据

数据包含属性和标签。在许多理解数据的方法中,下面是两种主要的方法。用描述性统计数据理解数据,用数据可视化理解数据

用描述性统计理解数据

以下是我们分析数据的方法

1.查看原始数据以理解问题

2.了解数据的大小

3.检查是否有任何丢失的数据

4.了解数据的类型

5.总结数据的描述性统计,以便更好地理解。

6.理解具有相关性的属性之间的关系。

了解数据集中属性的数据类型

一般来说,数据有两种类型,定量的和定性的。定量数据仅由数字组成,定性数据由数字以外的数据组成。根据数据的收集、组织、存储和格式化方式,定性数据进一步分为结构化数据和非结构化数据。

结构化数据由数字或单词组成,可以分为名义数据或顺序数据。名义数据也称为分类数据,可以是标签、数字或文本,代表一个类别。例如,男性和女性可表示为 0 或 1 或 M 和 f。序数数据类似于名义数据,但此外,数据元素可基于偏好进行排序或分级。例如,人们的收入可以根据收入分为高、中、低三类。

文本、视频、图像、音频都属于非结构化数据。

定量数据又分为连续数据和离散数据。连续数据可以取某个范围内的任何值,通常用 decimal 或 float 表示。比如 1.23,2.45 等。离散数据取值一般不能再进一步有意义地细分,它代表离散值,并用整数表示。例如,数苹果,10,20,22,34 等等。

定性数据又分为区间数据和比率数据。区间数据没有原点或基数(绝对零度),具有名义数据和序数数据的特征。因此,区间数据允许负值,并且只支持加法和减法运算(因为没有原点或基数)。例如,温度值以摄氏度和华氏度表示,而不是以开尔文表示(开尔文具有绝对零度)。比率数据具有名义数据、序数数据和区间数据的特征,此外,还具有起源或基础。因此,它支持所有四种运算——加、减、乘、除。例如,以开尔文为单位的温度值。

在数据科学领域,还发现数据分为四种基本类型——数值数据、分类数据、时间序列数据和文本。

数字数据代表任何数值,它进一步分为连续数据和离散数据,它们具有与上述相同的含义。

分类数据表示上述名义和顺序数据的特征。

时间序列数据表示在特定或规则的时间间隔内,在某个时间间隔或时间段内收集的数字序列。例如,某几年售出房屋的平均数量。时间序列数据不仅仅是数字(数值数据)的集合,而且是按时间顺序排列的。

文本数据通常只是单词。对于机器学习和深度学习,通常使用不同的方法将单词转换为数字。

数据的描述性度量

描述性测量给出了对数据的统计理解。它们让我们了解数据是如何定位的,以及数据的分布情况。描述性统计分析是从数据中得出结论的非常重要的一步。这是理解数据的第一步。

有两种数据的描述性度量,集中趋势的度量和扩散的度量。

集中趋势的度量

均值、中值和众数是集中趋势的度量。数据围绕某个值聚集的趋势称为集中趋势。

数据样本的平均值是所有数值的总和除以数值的个数。这是最常用和最可靠的集中趋势法。

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

平均值的计算是基于每个值的,因此它会受到异常值的很大影响。所以,当有极端值时,平均值就不是一个好的集中趋势的量度。

中位数是有序样本的中间点。它也被称为**第 50 百分位。**中位数比平均值受异常值或偏差数据的影响小得多。

众数是在样本中出现次数最多的值。模式是唯一可以应用于分类变量的中心趋势。

方差或价差的度量

方差是描述数据的第二个重要属性。方差是数据的扩散或分散程度。最流行的传播度量是范围、四分位范围、方差和标准差。

范围就是最大值和最小值之差。最小值是样本的最小值,最大值是样本的最大值。它只依赖于 2 个观察值,因此它有助于表示小数据集的离差。

四分位间距是第三个四分位值和第一个四分位值之间的差值。四分位数将排序数据集分为 4 个部分。分隔各部分的值称为 Q1、Q2、Q3

IQR 是 Q3——Q1

方差是值和平均值之差的平方和除以样本数— 1。

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

标准差是方差的平方根。这两个是最常用的变异度量。这些统计数据告诉我们这些值是如何围绕平均值波动的。如果平均值周围的数据浓度较高,则标准偏差将较低,反之亦然。

理解属性之间的关系

理解属性之间的关系对于选择在创建模型时要使用的特征是很重要的。可能有许多属性是冗余的或虚假的属性。在训练模型时,需要移除这些属性。使用冗余属性增加了训练时间和计算负荷。此外,属性的数据可能会有偏差。数据可能不符合完美的正态分布。当数据倾斜时,模型的性能将不会提高,即使对超参数进行调整。使用皮尔逊相关系数和检查偏斜数据可以了解数据之间的关系。

皮尔逊相关系数

皮尔逊相关系数是一个统计值,有助于理解一对属性或一个属性与标注或输出之间的关系。

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

其中 x 和 y 是两个属性,x 条和 y 条是属性的平均值

该系数的值可以在-1 和 1 之间变化。

  • 值为 0 表示这两个属性之间没有关系
  • 值 1 表示这两个属性之间完全相关
  • 值-1 表示这两个属性之间存在负相关

如果皮尔逊系数的值更接近 1,则属性之间的相关性非常密切,在模型中包含这两个属性将会增加训练和计算量。您可以从模型中忽略一个属性或特征,或者应用 PCA(主成分分析)来降低特征的维数。

皮尔逊系数可应用于属性和目标变量之间。如果系数的值接近 0,则特征或属性与输出之间没有关系,我们可以忽略该特征。如果系数值是负值并且接近于 0,那么最好忽略该特征。有熊猫函数来求皮尔逊相关系数。

偏斜数据

通常,属性数据是正态分布的。数据通常位于钟形曲线中。有时会出现数据失真的情况。

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

注:此图摘自维基百科。

当数据呈正态分布时,平均值、中位数和众数相同,数据均匀分布在平均值的两侧。有时会出现正偏差或数据偏向平均值的左侧,或者出现负偏差,即数据偏向平均值的右侧。

当我们有倾斜的数据时,即使调整超参数,模型的性能也不会提高。这是因为我们偏离了数据正态分布的回归假设。在使用这些数据进行训练之前,需要对这些数据进行处理。处理倾斜数据的一种流行方法是应用对数变换。处理偏斜数据的另一种方法是应用 box cox 变换。

用可视化理解数据

数据可视化是理解数据的最快方式之一。属性的数据可视化可以独立完成,也可以与另一个属性相结合。数据的独立可视化是通过单变量图完成的,而用于检查与其他属性的关系的可视化是多变量图。

单变量图

单变量图用于独立理解每个属性的数据。直方图、密度图、箱线图和须线图是一些单变量图。

直方图

直方图用于获得数据的分布。数据被放入不同的箱或区间,观察的频率被记录在图中。下图给出了一个房价直方图的例子。

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

直方图给出了关于数据的以下信息。

  • 它给出了观察的计数
  • 它给出了数据的分布。
  • 它表明数据是否正态分布。
  • 它指示数据是否有偏差。
  • 如果数据中有任何异常值,它也会给出信息。
  • 它给出了数据的分布。

密度图

密度图显示了连续时间间隔内的数据分布。与直方图不同的是,没有为间隔分配条柱,因此我们可以看到数据的连续分布。直方图的视觉外观取决于条块宽度的选择。

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

盒须图

箱线图可以用来显示分布的形状、中心值和可变性。绿色中间线显示数据的中位数,方框的边缘显示数据的第三和第一个四分位数。附在盒子上的线称为触须,末端显示数据的最大值和最小值。箱形图给出了数据的范围和四分位间距。箱线图也显示了异常值。位于胡须上方或下方的点表示异常值

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

多元曲线图

当一个图中包含多个参数或属性时,它们被称为多元图。多元图用于理解两个或多个属性的相互依赖性。相关矩阵图和散点图是用于理解机器学习中属性相关性的一些图。

相关矩阵图

相关矩阵是显示变量之间相关性的表格。矩阵中的每个单元格显示了两个变量之间的相关性。变量之间的相关性表明变量是如何相互关联的。它显示了一个变量如何随着另一个变量的变化而变化。相关性可以是正的,也可以是负的。如果一个变量和其他变量的变化方向相同,那么这些变量就是正相关的。当一个变量的变化方向与另一个变量的变化方向相反时,这两个变量是负相关的。

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

这张图给出了变量之间的相关性。这里出售的房子和 borough_flag 负相关。区旗和犯罪数量没有关联。

从相关矩阵图中可以了解到以下情况

理解变量或属性之间的相关性。

如果变量之间有很多相关性,线性回归可能会有不可靠的结果,所以有时我们可以从模型中删除一个变量。

散点图

散点图使用点来表示变量组 x 和 y 的值。它基本上是确定两个变量 x 和 y 之间是否有任何统计关系。

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

上图显示了变量 A、B、C、D、e 的散点图。变量之间可能存在以下关系。变量之间可能存在正相关、负相关、非线性关系或不相关。在上图中,变量 A 和 b 之间存在正相关。变量 A 和 c 之间存在负相关。变量 A 和 e 之间存在非线性相关。变量 A 和 d 之间不存在相关。

散点图还可以识别数据中是否有异常值。

多类数据的可视化

有时我们需要可视化分类问题的数据,其中有多个类别的数据。很多时候,属性数据的维数非常大,上述技术都无助于降低维数。在这些场景中,PCA、LDA 和 t-SNE 技术用于特征提取和降维。这些技术降低了数据的维度,帮助我们直观地了解不同类别的数据是如何分离的。

主成分分析

这是一种基于数据相关性的无监督线性变换技术,将识别数据中的模式。它是一种基于投影的方法,在高维数据中寻找最大方差的方向,并通过将数据投影到具有相等或更少维的新子空间中的一组正交轴上来变换数据。具有新轴的 PCA 的可视化将显示投影,该投影扩展数据并以某种方式形成聚类。以下是应用 PCA 后的数据聚类。

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

这种可视化帮助我们识别不同类的数据之间的分离。如果数据没有分离,主成分的数量需要增加,以检查我们是否得到了分离。这些主要成分现在可以用于构建我们的模型。

线性判别分析

它类似于 PCA,其中它找到使数据的方差最大化的分量轴,但是此外它尽可能多地保留类别区分信息。因此,LDA 的目标是再次将原始数据投影到具有相等或更少维度的新子空间中的一组轴上,但是此外,新的轴将使得它们最大化多个类别之间的分离。以下是在将 LDA 应用于上面应用了 PCA 的相同数据集之后的数据聚类。可以看出,当使用 LDA 时,类别分离更加明显。

双组分 LDA

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

t-分布随机邻居嵌入(t-SNE)

这是一种用于数据可视化的无监督非线性技术。t-SNE 的主要优点是它保留了数据中的局部和全局结构。这意味着原始数据中距离较近的点在低维中会保持距离较近。t-SNE 方法确定高维空间和低维空间中的两对点之间的相似性度量,然后使用成本函数试图优化这两个相似性度量。以下是对数据应用 t-SNE 后形成的聚类。

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

数据可视化有助于理解机器学习模型的数据和特征选择。

作者

斯里尼瓦斯·查克拉瓦蒂·:srinivas.yeeda@gmail.com

钱德拉塞卡银行:chandru4ni@gmail.com

数据可视化:北美自由贸易区国家在疫情的表现

原文:https://towardsdatascience.com/data-visualization-how-nafta-countries-are-doing-in-the-pandemic-a5ef8216e418?source=collection_archive---------48-----------------------

在家的时间和疫情期间的总病例数

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

邦妮·凯特Unsplash 上拍摄

介绍

北美自由贸易协定是由美国、加拿大和墨西哥组成的经济集团。该组织成立于 1994 年 1 月 1 日,旨在加强这些国家之间的贸易关系。其目标之一是与欧洲和中国市场展开正面竞争,这两个市场近年来发展迅猛。

北美自由贸易区本质上是经济区,与其他经济区相比,没有机构或政府来管理该区。由于欧盟以其社会和经济差异而闻名,分析其社会孤立图和疫情期间 Covid19 的总病例以更好地了解每个国家及其在这种新情况下的差异是很有趣的。

数据库ˌ资料库

所有的数据都来自谷歌移动报告网站,在那里你可以看到社区移动报告,这些报告是关于面对新冠肺炎的政策所带来的变化。这些图表显示了不同地区和不同类别的流离失所趋势。最后,病例总数的数据被从网站我们的世界的数据中删除。

预处理和清洗

程序的重要库

import pandas as pd
import matplotlib.pyplot as plt

读取数据

link='https://www.gstatic.com/covid19/mobility/Global_Mobility_Report.csv'data = pd.read_csv(link)
data.head()

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

列太多了

分隔主列

data_country = data.iloc[:,[1,7,8,9,10,11,12,13]].copy()data_country.columns = ['country','date', 'retail', 'grocery', 'parks', 'transit', 'workplaces', 'residential']data_country.date = pd.to_datetime(data_country.date)data_country.index = data_country.datedata_country.drop(labels = 'date', axis=1, inplace=True)data_country.head()

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

所有国家

使用“groupby”方法,对“住宅”列的经济集团国家进行分组。

data_country.groupby(by[data_country.index,"country"])
.mean().unstack()["residential"][['United States','Canada','Mexico']]

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

仅限北美自由贸易区国家

数据可视化

fig, ax = plt.subplots(nrows=1,ncols=3,figsize=(20,4))item = "residential" #grocery, parks, transit, workplaces, retailcountrys = ['United States','Canada','Mexico']for i,country in enumerate(countrys):data_country.groupby(by=[data_country.index,"country"]).mean().unstack()[item].rolling(window=7).mean().plot(legend=False,color="grey",linewidth=1, alpha=0.4, ax=ax[i])data_country.groupby(by=[data_country.index,"country"]).mean().unstack()[item][country].rolling(window=7).mean().plot(legend=False,color="blue",linewidth=7, alpha=0.6, ax=ax[i])ax[i].set_title(country,fontsize=12,ha='right')ax[i].xaxis.grid(False)ax[i].set_xlabel("")ax[i].set_xticklabels(["","Mar","Apr","May","Jun","Jul","Aug","Sep"])ax[i].xaxis.set_tick_params(labelsize=12)ax[i].yaxis.set_tick_params(labelsize=12)if (i==0) or (i==2):ax[i].yaxis.tick_right()else:ax[i].set_yticklabels([])#plt.savefig("nafta.png",dpi=300)plt.show()

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

整个疫情的社会隔离图

在这个图表中,我们用蓝色和灰色突出显示了国家的值,我们有世界上其他国家的值。

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

每个国家相对于世界的病例总数图表

在第二张图中,我们可以看到,尽管美国有一个指数,并且倾向于拥有与加拿大相似的病例数,但 Covid 的病例数比加拿大和墨西哥多许多倍,这向我们揭示了与加拿大相比,该病毒尚未得到控制,加拿大有类似的隔离图。

结论

值得注意的是,这两个图表是不同的,例如,加拿大像墨西哥一样有很高的社会隔离水平,今天它已经有一个低得多的数字,这可能意味着政府和疾病人口有更大的控制。所以,即使美国和加拿大有相似的社会隔离图表,案例数量的图表显示了美国非常大的差异,在集团的所有国家都有非常高价值的参与。

为了更好地理解这里观察到的代码和数据,可以链接到 GitHub 上的知识库,以及更深入的北美自由贸易协定内容

数据可视化:如何选择正确的图表[第 1 部分]

原文:https://towardsdatascience.com/data-visualization-how-to-choose-the-right-chart-part-1-d4c550085ea7?source=collection_archive---------8-----------------------

为您希望受众完成的任务选择正确的图形或图表样式

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

摩根·豪斯尔在 Unsplash 上的照片

根据世界经济论坛的数据,世界每天产生 2.5 万亿字节的数据。面对如此多的数据,管理和理解它们变得越来越困难。任何人都不可能一行一行地查阅数据,看到不同的模式并进行观察。

数据可视化是数据科学过程之一;也就是说,一个处理数据科学任务的框架。在数据被收集、处理和建模之后,需要为结论可视化关系。

我们使用数据可视化作为一种技术,通过可视化表示来传达数据的洞察力。我们的主要目标是将大型数据集提取到可视化图形中,以便直观地理解数据中的复杂关系。

所以现在,我们知道数据可视化可以提供传统描述性统计无法提供的洞察力。我们的大问题是如何为数据选择正确的图表?

本说明将为我们提供不同图表类型的概述。对于每种类型的图表,我们将介绍一个简短的描述。然后我们讨论什么时候使用它,什么时候应该避免使用它。接下来,我们将查看一些用于实现的 Python 代码。我只提出首要原则;完整版本将在本文末尾提供。

我希望这篇笔记足够有趣,可以弥补这个不足。让我们开始吧。

你想让你讲什么故事?

在制作图表之前,理解我们为什么需要图表是很重要的。图表、绘图、地图和图解帮助人们理解复杂的数据、发现模式、识别趋势和讲述故事。思考我们想与观众分享的信息。在这里,我根据图表的数据可视化功能对其进行分组,也就是说,我们希望我们的图表与我们的受众进行交流。虽然每个图表在特定功能中的分配并不是一个完美的系统,但它仍然可以作为一个有用的指南,用于根据我们的分析或交流需求选择图表。

本说明的第一部分将向我们介绍不同的图表,以显示变量之间的联系、随时间变化的趋势以及变量在类别中的相对顺序

关系

1.使用 Matplotlib
2 的散点图。边缘直方图
3。使用 Seaborn
4 的散点图。在 Seaborn
5 的结对情节。热图

数据随时间变化

6.线图
7。面积图
8。叠加面积图
9。未堆叠的面积图

等级

10.垂直条形图
11。横道图
12。多组条形图
13。堆栈条形图
14。棒棒糖图表

本笔记第二部分将向我们介绍用于比较变量及其分布的不同图表类型。

分配

15.直方图
16。带直方图的密度曲线
17。密度图
18。箱线图
19。带状图
20。小提琴剧情
21。人口金字塔

比较

22.气泡图
23。项目符号图
24。饼状图
25。网饼状图
26。圆环图
27。树形图
28。分叉杆
29。Choropleth 地图
30。气泡图

关系

我们使用关系方法来显示两个或多个变量之间的联系或相关性。

当评估数据集之间的关系时,我们试图理解两个或多个数据集是如何组合和相互作用的。

这种关系被称为相关性,它可以是正的,也可以是负的,这意味着所考虑的变量可能相互支持,也可能相互矛盾。

1.使用 Matplotlib 绘制散点图

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

图片由作者

散点图是一种常用于统计和数据科学的图表。它由跨两个轴绘制的多个数据点组成。散点图中描绘的每个变量都有不同的观察值。每当我们看到两个数据集之间的任何关系时,它都是一种有利的图表类型。

我们使用散点图来确定数据与每个变量的关系(即相关性或趋势模式。)它还有助于检测图中的异常值。

在机器学习中,散点图常用于回归,其中 x 和 y 是连续变量。它们也用于聚类分散点或离群点检测。

如果我们对观察时间模式感兴趣,散点图是不合适的。

散点图用于数字数据或数字。因此,如果我们有三个部门、五种产品等类别。散点图不会揭示太多。

Python 实现

我们使用虹膜数据集进行可视化。

plt.scatter(iris_df['sepal length (cm)'], iris_df['sepal width (cm)'])
plt.title('Scatterplot of Distribution of Sepal Length and Sepal Width', fontsize=15)
plt.xlabel('sepal length (cm)')
plt.ylabel('sepal width (cm)')

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

图片由作者

2.边缘直方图

边缘直方图是添加到散点图的每个轴的边缘的直方图,用于分析每个测量的分布。

我们使用边际直方图来评估两个变量之间的关系,并检查它们的分布。将边缘直方图放在散点图中,或者在突出显示的表格上添加边缘条,可以使可视化具有交互性、信息量大且令人印象深刻。

Python 实现

# A seaborn jointplot shows bivariate scatterplots and univariate histograms in the same figure
p = sns.jointplot(iris_df['sepal length (cm)'], iris_df['sepal width (cm)'], height=10)

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

图片由作者

3.使用 Seaborn 的散点图

我们的目标是创造一个传奇来理解不同群体之间的差异。我们将使用 seaborn 的 FacetGrid 按物种给散点图着色。

sns.FacetGrid(iris_df, hue=’species’, size=10) \
 .map(plt.scatter, ‘sepal length (cm)’, ‘sepal width (cm)’) \
 .add_legend()
plt.title(‘Scatterplot with Seaborn’, fontsize=15)

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

图片由作者

4.Seaborn 的配对图

另一个有用的 seaborn 图是pairplot,它显示了每对特征之间的二元关系。从配对图中,我们将看到鸢尾物种在所有特征组合中都与其他两个物种分开。

sns.pairplot(iris_df.drop(“target”, axis=1), hue=”species”, height=3)

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

图片由作者

5.热图

热图是数据的图形表示,使用颜色编码系统来表示不同的值。热图通过在行和列中放置变量并对表中的单元格进行着色,对于交叉检查多变量数据非常有用。

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

图片作者作者

所有的行是一个类别(标签显示在左侧),所有的列是另一个类别(标签显示在底部)。单独的行和列被分成子类别,这些子类别在矩阵中相互匹配。表格中的单元格包含颜色编码的分类数据或基于色标的数值数据。单元格中的数据展示了连接行和列中两个变量之间的关系。

热图对于显示多个变量之间的差异、揭示任何模式、显示任何变量是否相似以及检测它们之间的任何相关性非常有用。

当我们想要查看分类值的哪些交叉点比其他交叉点具有更高的数据集中度时,热图会非常有用。

热图更适合显示数字数据的更一般化视图。很难准确区分颜色深浅的差异,也很难提取特定的数据点(除非我们包括细胞的原始数据)。

如果其中一行或一列设置为时间间隔,热图还可以显示数据随时间的变化。例如,使用热图来比较城市全年的温度变化,以查看最热或最冷的地方。因此,行包含每个月,列表示小时,单元格包含温度值。

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

来源:数据即用 Python 和 R

Python 实现

我们使用来自 Kaggle世界幸福报告数据集。我清理了数据,将所有文件合并到happiness_rank.csv文件中。你可以下载并清理数据或者在这里下载最终结果。我推荐你在 Github 上查看我的数据清理代码。

sns.heatmap(happy[usecols].corr(),linewidths=0.25,
            vmax=0.7,square=True,cmap="Blues", 
            linecolor='w',annot=True,annot_kws={"size":8}, 
             mask=mask, cbar_kws={"shrink": .9})

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

图片作者作者

数据随时间变化

有时,仅仅知道变量之间存在关系是不够的;在某些情况下,如果我们也能想象这段关系发生的时间,更好的分析是可能的。因为关系是用变量之间的链接来表示的,所以日期/时间显示为链接属性。这种可视化方法显示一段时间内的数据,以发现一段时间内的趋势或变化。

6.折线图

折线图用于显示连续时间间隔或期间的量化值。

绘制折线图时,首先在笛卡尔坐标网格上绘制数据点,然后将它们连接起来。通常,y 轴有一个数量值,而 x 轴是一个时间刻度或一系列间隔。图表上线条的方向是对数据的一个很好的比喻:向上的斜率表示值在增加,向下的斜率表示值在减少。线条在图表中的移动可以创建揭示数据集中趋势的模式。

折线图最常用于显示趋势和分析数据随时间的变化。

折线图最适合连续数据,因为它连接了许多属于同一类别的变量。

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

来源:Python 图表库

当与其他线条或其他数据系列组合在一起时,可以对单独的线条进行比较。然而,我们应该避免在每张图中使用超过四行的线条,因为这会使图表更加混乱和难以阅读。解决这个问题的方法是将我们的图表分成多个支线剧情。

Python 实现

假设我们有一个包含中等成员信息的数据集。我们想看看 2019 年读过的文章的趋势。

plt.plot(data['Month'], data['All Views'], color='#4870a0', marker='o')

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

图片作者作者

7.对比图

面积图的概念基于折线图。彩色区域向我们展示了一个变量随时间的发展。

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

来源: Matplotlib 备忘单

面积图非常适合清楚地说明两个或更多数据点之间的变化幅度。例如,幸福分数有六个生成分区;我们希望看到每个分部的贡献。

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

来源: Matplotlib 备忘单

此外,如果我们感兴趣的是每个分部产生的部分,而不是分部本身的总量,我们可以使用 100%堆积面积图。这将显示一段时间内每个部门的百分比贡献。

如果我们想要呈现波动的值,如股票市场或价格变化,面积图不是最佳选择。

Python 实现

在这里,我们希望展示一段时间内外部视图的累计数量。

plt.stackplot(data['Month'], data['External Views'], colors='#7289da', alpha=0.8)

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

图片由作者

7.堆叠面积图

堆叠面积图的概念是基于简单的面积图。它在同一个图形上显示几个组的值。每组的值显示在彼此的顶部。整个图表代表所有数据随时间变化的总和。

堆积面积图类型是一种功能强大的图表,因为它允许对数据进行分组并查看选定日期范围内的趋势。

堆积面积图使用面积来表示整数,因此它们不适用于负值。

堆积面积图丰富多彩且有趣,但我们应该谨慎使用,因为它们很快就会变得一团糟。我们不应将超过五个类别放在一起。

Python 实现

plt.stackplot(data['Month'], data['Internal Views'], data['External Views'],
              alpha=0.75,
              colors=['#7289da','#f29fa9'],
            labels=['Internal Views', 'External Views'])

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

图片作者作者

9.未堆叠的面积图

与堆叠面积图不同,未堆叠面积图在同一图形上显示几个组的重叠。

x = data['Internal Views']
y = data['External Views']# plot the data
ax.plot(x, color='#49a7c3', alpha=0.3, label='Internal Views')
ax.plot(y, color='#f04747', alpha=0.3, label='External Views')# fill the areas between the plots and the x axis
# this can create overlapping areas between lines
ax.fill_between(x.index, 0, x, color='blue', alpha=0.2)
ax.fill_between(x.index, 0, y, color='red', alpha=0.2)

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

图片作者作者

等级

可视化方法显示数据值的相对顺序。

条形图

条形图是最常用的图表类型之一。顾名思义,条形图是由一系列显示变量发展的条形组成的。

条形图有四种类型:水平条形图、垂直条形图、组条形图和堆积条形图。

当我们想要跟踪一个或两个变量随时间的发展时,条形图非常有用。图表的一个轴显示正在比较的特定类别,另一个轴代表测量值。

当我们有一个变量的单周期分解时,简单的条形图是不合适的。例如,如果我想描绘对公司收入有贡献的主要业务线,我不会使用条形图。相反,我会创建一个饼图或其变体。

10.垂直条形图

垂直条形图(柱形图)不同于直方图,因为它们不显示一段时间内的连续发展。垂直条形图的离散数据是分类的,因此回答了“有多少?”在每个类别中。

垂直条形图通常用于比较特定数值范围内的几个项目。因此,它非常适合于比较单个子项目之间的单个数据类别,例如,地区之间的相应收入。

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

图片由作者

Python 实现

我们使用 mpg_ggplot2 数据帧。它是变量(在列中)和观察值(在行中)的矩形集合。mpg包含美国环境保护署对 38 种受欢迎车型的观察结果。

Python 实现

在这里,我们要对比一下车模。

plt.bar(value_count.index, value_count.values, color='#49a7c3')

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

图片作者作者

11.水平条形图

水平条形图水平表示数据。数据类别显示在 y 轴上,数据值显示在 x 轴上。每个条形的长度等于对应于数据类别的值,所有条形都从左到右穿过。

Python Implementation

plt.barh(value_count.index, value_count.values, color='#b28eb2')

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

图片作者作者

13.多组条形图

也称为分组条形图或簇状条形图。

当两个或多个数据系列并排绘制并按类别分组时,使用这种变化的条形图,所有数据系列都在同一坐标轴上。

我们使用多组条形图将分组变量或类别与具有相同变量或类别类型的其他组进行比较。

组条形图的缺点是,一个组中的条形图越多,阅读起来就越困难。

Python 实现

ax = views.plot.bar(rot=0,color='#E6E9ED',width=1, figsize=(14,8))
ax = df.plot.bar(rot=0, ax=ax, color=['#7289da', '#dd546e', '#99aab5', '#f3c366'], 
                 width=0.8, figsize=(14,8))

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

图片由作者

13.堆叠条形图

与并排显示条形的多集条形图不同,堆积条形图将条形分段。堆积条形图用于显示如何将一个较大的类别划分为较小的类别,以及每个部分与总额之间的关系。

堆积条形图将该段的每个值放在前一个值之后。条形的总值是所有段值的总和。这是比较每组/分段条形图总额的理想方法。

堆积条形图的一个主要缺陷是,每个条形图的分段越多,阅读起来就越困难。此外,将每个组件相互比较也很困难,因为它们不在一个共同的基线上。

Python 实现

rect1 = plt.bar(data['Month'] ,data['Internal Views'],
                width=0.5, color='lightblue')
rect2 = plt.bar(data['Month'], data['External Views'],
                width=0.5, color='#1f77b4')

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

图片作者作者

14.棒棒糖图表

棒棒糖图以一种视觉愉悦的方式提供了与有序条形图相似的用途。我们使用棒棒糖图来显示一个数值变量和另一个数值变量或分类变量之间的关系。

如果我们处理大量的值,并且当值都很高时,例如在 80–90%范围内(100%之外),棒棒糖图通常被认为比标准条形图有用。那么一系列高大的柱子会在视觉上具有侵略性。

如果我们的数据中有长度非常相似的未分类棒棒糖,那么比较两个非常相似的棒棒糖的大小就比比较标准棒棒糖更困难。

Python 实现

(markerline, stemlines, baseline) = plt.stem(value_count.index, value_count.values)

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

图片由作者

第一部分到此为止。该代码可在 Github 上获得。我们将在第二部分继续讨论分布和比较。

到目前为止,我们知道数据可视化是一种快速、简单的普遍表达概念的方式——我们可以通过稍作调整来试验不同的场景。

有几十种用于数据可视化和数据分析的工具——从简单的需要零编码( Tableau )到复杂的需要编码( JaveScript )。不是每个工具都适合每个想学习可视化技术的人,也不是每个工具都可以扩展到行业或企业目的。

我最喜欢的教授告诉我,“好的数据可视化理论和技能会超越具体的工具和产品。”当我们学习这项技能时,关注最佳实践,并探索我们在可视化和仪表板方面的风格。数据可视化不会很快消失,所以无论您最终使用什么工具或软件,都必须建立一个可以随身携带的分析、讲故事和探索的基础。

如果你想更深入地研究这个特定的主题,这里有一些很好的起点。

  1. 信息是美好的
  2. 可视化数据
  3. 数据可视化目录
  4. 颜色十六进制
  5. Matplotlib 备忘单
  6. 如何用 Python 制作 Seaborn 的热图?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值