"""Example to demonstrate how a pie chart can be used to represent the marketshare for smartphones.Note: These are not real figures. They were created for demonstration purposes."""import numpy as npfrom matplotlib import pyplot as plt# Dataset creation.smartphones = ["Apple", "Samsung", "Huawei", "Google", "Other"]market_share = [50, 30, 5, 12, 2]# Pie chart creationfig, ax = plt.subplots(figsize=(10, 6))plt.pie(market_share, labels = smartphones, autopct='%1.2f%%')plt.title("Smartphone Marketshare for April 2021 - April 2022", fontsize=14)plt.show()技术支持
import matplotlib.pyplot as plt# Data creation.sneakers_sold = [10, 12, 8, 7, 7, 10]dates = ["Jul '1", "Jul '7", "Jul '14", "Jul '21", "Jul '28", "Jul '31"]# Line graph creationfig, ax = plt.subplots(figsize=(10, 6))plt.plot(dates, sneakers_sold)plt.title("Sneakers sold in Jul")plt.ylim(0, 15) # Change the range of y-axis.plt.xlabel("Dates")plt.ylabel("Number of sales")plt.show()技术支持
面积图是折线图的延伸,不同之处在于折线下方的区域用颜色或图案填充。
下面是将上面的同一数据绘制为面积图:
# Area chart creationfig, ax = plt.subplots(figsize=(10, 6))plt.fill_between(dates, sneakers_sold)plt.title("Sneakers sold in Jul")plt.ylim(0, 15) # Change the range of y-axis.plt.xlabel("Dates")plt.ylabel("Number of sales")plt.show()技术支持
# Data creation.sneakers_sold = [[3, 4, 2, 4, 3, 1], [3, 2, 6, 1, 3, 5], [4, 6, 0, 2, 1, 4]]dates = ["Jul '1", "Jul '7", "Jul '14", "Jul '21", "Jul '28", "Jul '31"]# Multiple area chart creationfig, ax = plt.subplots(figsize=(10, 6))plt.stackplot(dates, sneakers_sold, labels=["Nike", "Adidas", "Puma"])plt.title("Sneakers sold in Jul")plt.ylim(0, 15) # Change the range of y-axis.plt.xlabel("Dates")plt.ylabel("Number of sales")plt.legend()plt.show()技术支持
上述每个图都展示了完全相同的数据,只是呈现方式不同。
直方图
直方图用于表示数值变量的分布。
import numpy as npimport matplotlib.pyplot as pltdata = np.random.sample(size=100)# Graph will change with each runfig, ax = plt.subplots(figsize=(10, 6))plt.hist(data, bins=6)plt.title("The distribution of data")plt.xlabel("Data")plt.ylabel("Frequency")plt.show()技术支持
import numpy as npimport seaborn as snsimport matplotlib.pyplot as pltdata = np.random.rand(8,10)# Graph will change with each runfig, ax = plt.subplots(figsize=(10, 6))sns.heatmap(data)plt.title("Random Uniform Data")plt.show()技术支持
零代码工具(如 Power BI 和 Tableau)最适合需要快速、易用可视化而不具备编程技能的人群,非常适合业务专业人士和管理者。基于代码的工具(如 Python 的 Matplotlib 或 R 的 ggplot2)为熟悉编程的用户提供更强的灵活性与自定义能力,特别适合处理复杂数据并需要完全掌控可视化过程的数据科学家或分析师。
想象一下,您不断滚动浏览无尽的数据行,却无法发现其中蕴含的洞见。对于如今的许多企业而言,这正是现实:每天约有402.74 百万太字节的数据被生成。那么,我们如何理解这一切?答案就在于数据可视化。
组织和个人借助数据来确定问题的根源并识别可付诸行动的步骤。然而,随着数据量不断增长,要理清其含义变得愈发具有挑战性。人的本能是寻找模式并建立结构——我们通过这种方式存储信息、获得新见解。当输入的数据没有以令人愉悦的视觉方式呈现时,识别这些模式、找到结构会变得困难,甚至在某些情况下是不可能的。
在本文中,我们将探讨数据可视化如何解决上述问题。我们还将讨论什么是数据可视化、它为何重要、提升技能的建议、常见图表,以及用于可视化数据的工具。
什么是数据可视化?
数据可视化是以图形方式呈现数据的过程。它是把数据转化为视觉语境的行为,可以通过图表、绘图、动画、信息图等实现。其背后的理念是让我们更容易识别数据中的趋势、异常值与模式。我们在Understanding Data Visualization 课程中更深入地探讨了这一概念。
数据从业者经常利用可视化来总结数据中的关键信息,并将这些信息传达给相关利益方。
例如,数据从业者可能会为管理人员创建数据可视化,管理人员再利用这些可视化来规划组织结构。另一个例子是数据科学家使用可视化来揭示数据的底层结构,从而更好地理解他们的数据。
鉴于上文对数据可视化目的的界定,我们可以从“什么是数据可视化”中得到两个关键要点:
1)让数据更易获取:让事物更易获取的最佳方式是保持简洁。这里的“简洁”需要结合语境:对十岁儿童来说直观易懂的内容,未必适用于博士学位持有者。因此,数据可视化是一种让相关受众更容易获取数据的技术。
2)一种沟通方式:这一点是第一点的延伸。要实现有效沟通,房间里的每个人都应“说同一种语言”。无论您是独立完成任务还是与团队合作,可视化都应为可能查看它的人提炼出有意义的洞见。CEO 可能更希望看到能转化为行动的洞见,而机器学习团队可能更关注模型性能方面的洞见。
简而言之,数据可视化是一种让人更容易识别数据中的模式或趋势的技术。
我们的数据可视化速查表以图像方式呈现数据可视化的核心概念
为什么数据可视化对数据科学家如此重要?
数据科学是一个跨学科领域,使用科学方法、流程、算法和系统,从嘈杂、结构化与非结构化数据中提取知识与洞见(参见我们的“什么是数据科学”指南获取更深入解释)。然而,数据科学家面临的挑战在于:面对原始数据时并非总能“连点成线”;这正是数据可视化极具价值之处。让我们看看为何数据可视化对数据科学家而言是如此强大的工具。
可发现性与学习
数据科学家需要对所用数据有良好的理解。数据可视化使他们能够突显数据中最具信息量的部分,帮助自己(及他人)快速、轻松地把握数据中发生的事情。例如,在表格中识别趋势要比以可视化方式看到它困难得多。我们将在后文更详细地讨论这一点。
讲故事
数百年来,故事一直被用于传播信息。故事之所以动人,是因为它能与受众建立情感连接。这种连接使受众对他人的经历有更深刻的理解,从而让信息更容易被记住。数据故事讲述是一种可视化形式:它帮助数据科学家理解自己的数据,并以易于理解的格式与他人分享。
效率
洞见当然也可以从数据库中获得(在某些情况下),但这需要极高的专注度,且会带来不小的业务成本。在此类情境下使用数据可视化要高效得多。比如,如果目标是识别 2024 年所有出现亏损的公司,那么用红色高亮利润小于零的公司、用绿色高亮利润大于零的公司,将持平的公司保持中性,这样做比手动解析数据库并逐一标注公司要高效得多。
美感
虽然原始数据可能信息丰富,但它往往不够美观或吸引人。数据可视化是一种将信息量大但乏味的数据转化为美观而富有洞见的知识的技术。让数据更具视觉吸引力,契合了我们以视觉为主的天性。换言之,当信息能够刺激我们的视觉感官时,我们处理信息的速度会更快。
如何学习数据可视化
数据可视化是所有与数据打交道的人都必须掌握的一项关键技能,从业务分析师到数据科学家皆是如此。掌握它能让您有效传达洞见,使数据驱动决策更清晰、更有影响力。如果您在思考从何入手,我们提供了多种资源,旨在为您数据可视化之旅的每个阶段提供指引——无论您是初学者还是希望精进高级技能。
您可以这样开始:
1. 从基础入门
如果您完全是数据可视化新手,在深入学习高级工具和技术之前,理解基础至关重要。DataCamp 提供结构化的学习路径,引导您掌握这些基础。
2. 学习使用零代码工具进行可视化
对于尚不熟悉编程的人,我们提供了一些工具课程,允许您在不写代码的情况下创建可视化。这些工具非常适合业务用户、管理者,以及任何希望快速创建有洞见可视化的人。
3. 通过编码开发高级可视化技能
如果您准备好亲自上手编码,学习使用 Python 或 R 创建可视化,将大幅拓展您自定义与自动化数据可视化的能力。
4. 通过项目练习
在掌握基础之后,练习是精通数据可视化的关键。DataCamp 的实操项目让您将技能应用到真实世界数据集中,帮助您积累实践经验。
5. 持续学习并保持更新
数据可视化是一个不断演进的领域,新的工具与技术层出不穷。DataCamp 会定期更新课程并推出新课程,帮助您掌握最新趋势。
数据可视化工具
数据科学家、数据分析师等数据从业者通常会借助数据可视化工具,以更高效地工作并更有效地沟通他们的发现。
这些工具可分为两类:1)零代码;2)基于代码。让我们分别看看各类别中的热门工具。
零代码工具
并非您组织中的每个人都精通技术。然而,不会编程不应成为您从数据中提炼洞见的障碍。即使不会编程,仍可以具备数据素养——能够阅读、书写、交流并运用数据进行推理,从而做出更优的数据驱动决策。
因此,零代码工具为可能没有编程知识的人提供了一种易用的解决方案(当然,有编程技能的人也可能选择使用它们)。更正式地说:零代码工具是图形用户界面,具备运行原生脚本以处理与增强数据的能力。
一些零代码工具的示例包括:
Power BI
Power BI 是微软推出的、广受欢迎的数据可视化与商业智能解决方案。它是全球最流行的商业智能工具之一,用于报告、自助分析和预测分析。该平台使您能够快速清洗、分析并开始从组织数据中发现洞见。
如果您对学习 Power BI感兴趣,建议从 Datacamp 的Power BI Fundamentals 技能路径开始。
Tableau
Tableau 也是全球最受欢迎的商业智能工具之一。其简洁的拖放功能让任何人都能通过交互式可视化轻松开始从组织数据中发掘洞见。
DataCamp 的 Tableau Fundamentals 技能路径是入门 Tableau 的绝佳方式。
ChatGPT
ChatGPT 很快就成为帮助人们可视化数据的工具。正如我们在GPT-4o文章中所探讨的,只需几个提示,您就可以使用该工具来可视化数据中的趋势。生成式 AI 正在改变我们看待数据的方式,未来可期!查看我们的ChatGPT Fundamentals 技能路径,了解如何使用这一强大的工具。
基于代码的可视化
如果您更懂技术,可能更愿意使用编程语言来可视化数据。随着数据产出的增加,Python 与 R 因其支持数据处理的多样化包而愈发流行。
让我们来看看其中一些包。
Python 包
Python 是一种高级、解释型、通用编程语言。它提供了多种优秀的绘图库用于数据可视化,例如:
Data Visualization with Python 技能路径是一系列出色课程,帮助您使用 Python 最流行、最强大的可视化库,全面提升数据科学技能。
R 包
R 是一种用于统计计算与绘图的编程语言。它是数据分析的强大工具,借助其多个包几乎可以创建任何类型的图形。常用的 R 数据可视化包包括:
查看 Data Visualization with R 与 Interactive Data Visualization in R 技能路径,用 R 语言进一步提升您的可视化技能。
数据可视化中常用的图表
我们已经确认,数据可视化是呈现与沟通数据的有效方式。本节将介绍如何使用 Python 与其数据可视化包 Matplotlib 创建一些常见的图表,作为大多数可视化任务的有效起点。我们也会分享每种图表的使用场景。
您可以查看这个DataLab 工作簿获取完整代码。
频率表
频率表非常适合表示某个事件或取值出现的次数。我们通常用它来计算数据的描述性统计。例如,我们可能希望了解某个特征对最终决策的影响。
让我们创建一个示例频率表。我们将使用 UCI 机器学习库中的汽车评估数据集和 Pandas 来构建频率表。
条形图
条形图是最简单却最有效的数据可视化之一。它通常用于比较不同类别之间的差异。例如,我们可以用条形图来可视化欺诈与非欺诈案例的数量。另一个用例是用条形图可视化某部电影各星级评分的频次。
下面是在 Python 中创建条形图的方法:
饼图
饼图是另一种简单高效的可视化工具。它通常用于展示并比较整体中的各部分。例如,用饼图表示智能手机的市场份额就是一个不错的用例。我们来用 Python 实现一下。
折线图与面积图
折线图非常适合用来可视化一段时间内数据的趋势或变化。例如,我们可以用折线图来展示七月份运动鞋的销售数量。
面积图是折线图的延伸,不同之处在于折线下方的区域用颜色或图案填充。
下面是将上面的同一数据绘制为面积图:
我们也常见到堆叠面积图,用于展示多变量随时间的变化。例如,我们可以用堆叠面积图来可视化七月份售出的运动鞋按品牌的构成,而不是总销量。
上述每个图都展示了完全相同的数据,只是呈现方式不同。
直方图
直方图用于表示数值变量的分布。
散点图
散点图用于可视化两个不同变量之间的关系。我们也常会添加一条最佳拟合线来揭示数据的整体走向。一个散点图的用例是表示气温如何影响冰淇淋销量。
热图
热图通过颜色编码来表示两个项之间的强度。一个用例是用于展示天气预报(例如,用红色区域表示将有强降雨)。您也可以用热图来表示网站流量,以及几乎任何三维数据。
为了演示如何在 Python 中创建热图,我们将使用另一个基于 Matplotlib 的高级可视化库 Seaborn。
矩形树图
矩形树图通过嵌套矩形来表示层级数据。它非常适合可视化包含大量类别的“部分-整体”关系,如销售数据。
为了在 Python 中构建矩形树图,我们将使用另一个用于创建交互式图形的库 Plotly。
打造高效数据可视化的 3 个技巧
数据可视化是一门艺术。提升技能需要时间与练习。以下三条建议可助您走在正确的方向上:
技巧一:提出具体问题
创建有效数据可视化的第一步、也是最关键的一步,是心中有一个清晰具体的问题。否则,您可能会产出焦点不明、难以解读的可视化。
明确的问题有助于您将可视化聚焦于直接作答,避免无关信息干扰或压倒受众。
技巧二:选择合适的可视化形式
并非所有可视化都适用所有场景。选择错误的图表类型会扭曲您的信息并使受众困惑。每种图表都有其优势,适用于特定类型的数据。
图表类型选择要点:
要点:将图表类型与您要解决的具体问题或所用数据相匹配,以提升清晰度。
技巧三:突出最重要的信息
在创建可视化时,务必要引导受众关注关键信息。合理使用颜色、大小和设计元素可以帮助您强调最重要的部分。
以下方法可以帮助您突出关键信息:
要点:诸如颜色、大小、标签等细节设计,能极大提升受众快速把握关键信息的能力。
结语
总而言之,高效的可视化利用了我们识别模式的天性。通过颜色、形状、大小等手段,可以极其有效地突出您想展示的最重要信息。
数据可视化是一门艺术;做好它需要提出具体问题、选择合适的可视化形式,并突出最重要的信息。若您的第一次尝试并不出色,不必气馁;提升技能需要时间与练习。DataCamp 提供的丰富数据可视化课程将是帮助您成为可视化高手的绝佳资源。