关于数据可视化的介绍,我们在前面的文章中已经讲解过了。详情请了解:数据可视化的作用
其实在我们读书时期就接触过数据可视化,初中的试卷上经常会看到一道题目:根据给出的数据,做出柱状图表,读书时我们都只会在试卷上手绘柱状图。
当我们读了大学或进入工作后,就会被学校、社会要求掌握一项画图的技能。本期文章将会带大家了解多种绘图方法,并比较其差距。
数据从哪里来?
在画图之前,我们需要先清楚数据可视化是帮助人们接收数据传递信息的工具,它是离不开数据的。通常,我们把数据的来源分为两大类:数据库数据源与 Excel 数据源。
Excel 数据源
Microsoft Excel 是 Microsoft 为使用 Windows 和 Apple Macintosh 操作系统的电脑编写的一款电子表格软件。相信大家对它都不陌生,直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使 Excel 成为最流行的个人计算机数据处理软件。
在 Excel 中可以直观的编辑或处理数据,但是 Excel 可承载的数据量较小,一般不超过 100 万行。
数据库数据源
你可能会问:我的数据存放在自己电脑的 Excel 里就可以,为什么还要搞个数据库。
因为数据库比 Excel 有更多的优势,Excel 好比是一个移动硬盘,你使用了这个移动硬盘其它人就用不。数据库好比是网盘,可以存放大量的数据,并且允许很多人同时访问里面的数据。
如何画一个柱状图?
有了数据之后,我们想根据数据绘制一个柱状图,可以考虑从三种通用型工具去绘制。这三种工具各有优劣,你可以根据自己的需求选择合适的绘图工具。
Excel 画图
画图步骤
- 打开 Excel,并在工作表中准备数据。确保数据包含类别(x 轴)和相应的数值(y 轴)。例如,你可以在第一列输入类别名称,在第二列输入对应的数值。
- 选择你的数据范围。点击并拖动鼠标选择包含类别和数值的单元格区域。
- 在 Excel 的菜单栏中选择"插入"选项卡。在"插入"选项卡中,找到"图表"部分,并点击"柱形图"图标。它通常显示为一列垂直排列的长方形。在弹出的图表类型窗口中,选择你喜欢的柱状图类型。常见的类型包括普通柱状图、堆积柱状图、群组柱状图等。你可以选择任意类型来展示你的数据。
- 点击所选的柱状图类型,Excel 将根据你的数据自动生成柱状图。根据需要,对图表进行格式设置。你可以更改标题、轴标签、图例等。单击图表元素,然后使用右键菜单或"格式化"选项卡中的工具栏来进行设置。
优势
- 用户友好性:Excel 是广为人知的电子表格软件,用户界面直观易用,许多人对其熟悉并能够掌握基本的数据分析和可视化技巧。
- 快速创建:Excel 提供了易于使用的图表工具,可以快速创建各种类型的图表,包括柱状图。
- 数据整合:Excel 是一种综合的办公套件,可以方便地将数据与其他表格、图表和公式结合使用。
劣势
- 有限的功能:相比于专业的数据可视化工具,Excel 的图表功能相对有限,难以实现复杂的可视化需求。
- 数据处理能力:当处理大量数据时,Excel 的性能可能变得较低,且难以处理复杂的数据操作和计算。
- 缺乏交互性:Excel 图表的交互性和动态性相对较弱,无法提供高级的交互式数据探索和可视化功能。
另外,在 Excel 中绘图,大多数数据都是来源于 Excel,它可以连接部分数据库作为数据源,在实际的生产环境中,许多业务人员会将数据导出成 Excel 表格,再导入进 Excel 中绘图。这个操作看似是绕了个弯,但在许多数字化发展程度不太高的企业中,却有大量的业务人员每天进行这样的操作。
Python 画图
画图步骤
- Matplotlib 是 Python 的一个绘图库,使用它可以很方便的绘制出版质量级别的图形。需要提前下载 Matplotlib 库,在终端中执行以下代码
# 直接执行pip install 下载较慢,在其后面添加镜像地址,以清华这边的镜像为例。
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
- 在 Python 中导入 Matplotlib 库、Numpy 库
import numpy as np
import matplotlib.pyplot as plt
- 创建 / 导入 / 连接 数据:在 Python 中绘图支持多种数据来源,可以自己创建数据、导入 Excel 数据、或连接数据库数据,这里采用自己创建数据的方式演示。创建苹果和橘子两个商品在过去 12 个月的的销量数据
apple = np.array([82,34,46,58,46,58,35,41,46,13,44,35])
orange = np.array([69,76,46,96,24,54,15,67,35,74,37,58])
- 使用 Matplotlib 库绘制柱状图,在绘图之前需要了解柱状图的相关 API 。
# 1.创建图形窗口
mp.figure (
'' , # 窗口标题栏文本
figsize = (4, 3), # 窗口大小<元组>
dpi = 120, # 像素密度
facecolor = '' # 图表背景色
)
# 2.设置图标标题,fontsize的 代表字体大小
mp.title(title, fontsize = 12)
# 3.设置图表网格线 linestyle 设置网格线的样式
# - or solid 粗线
# -- or dashed 虚线
# -. or dashdot 点虚线
# : or dotted 点线
mp.grid(linestyle = '')
# 4.绘制柱状图
mp.figure('Bar',facecolor = 'lightgray')
mp.bar (
x, # 水平坐标数组
y, # 柱状图高度数组
widht, # 柱子的宽度
color, # 填充颜色
label,
alpha, # 透明度
)
# 5.设置x轴和y轴的坐标刻度
mp.xticks(values,text)
mp.yticks(values,text)
# 6.设置图例
# 'best' ---> 0
# 'upper right' ---> 1
# 'upper left' ---> 2
# 'lower left' ---> 3
# 'lower right' ---> 4
# 'right' ---> 5
# 'center left' ---> 6
# 'center right' ---> 7
# 'lower center' ---> 8
# 'upper center' ---> 9
# 'center' --->10
mp.legend(loc = '')
# 7.显示图形
mp.show()
- 设置 x 的水平坐标数组
x = np.arange(apple.size)
- 使用绘图相关 API 绘制柱状图
# 创建图形窗口,背景色会浅灰色
mp.figure('Bar',facecolor = 'lightgray')
# 将图表命名为 Bar Chart,字体大小为18
mp.title('Bar Chart', fontsize = 18)
# 图表网格线为点线
mp.grid(linestyle = ':')
# 绘制苹果的柱状图,苹果的水平坐标数组在x轴左边0.2位置,颜色为青绿色。
mp.bar(
x-0.2,apple,0.3,color='limegreen',label='Apples',align='center'
)
# 绘制橘子的柱状图,橘子的水平坐标数组在x轴右边0.2位置,颜色为橘红色。
mp.bar(
x+0.2,orange,0.3,color='orangered',label='Oranges',align='center'
)
# 设置刻度:1-12月
mp.xticks(x,['Jan','Fer','Mar','Apr'
,'May','Jul','Jun','Aug'
,'Sep','Oct','Nov','Dec'])
# 设置图例()则显示最佳位置
mp.legend()
# 显示图形
mp.show()
- 查看显示效果
上述步骤提到的绘图相关 API 是 Matplotlib 库中的一部分,实际上它包含大量的绘图方式,熟悉 Python 的朋友可以自行查阅。
优势
- 强大的定制性:Python 提供了丰富的数据可视化库,如 Matplotlib 和 Seaborn ,可以通过编程方式轻松定制和控制图表的每个方面。
- 处理大数据:Python 具有出色的数据处理和计算能力,可以处理大规模数据集,执行复杂的数据操作,并生成高质量的图表。
- 可扩展性:Python 是一种通用编程语言,可以与其他数据科学工具和库集成,从而实现更广泛的数据分析和可视化需求。
劣势
- 需要编程:使用 Python 进行数据可视化需要编写代码,对于不具备编程背景的用户来说有一定的难度。
- 相对复杂:相比于 Excel 和 DataEase ,使用 Python 进行数据可视化可能需要更多的代码和步骤,可能对一些用户而言显得复杂。
DataEase 画图
DataEase 是一款数据可视化工具,目前市面上有多种可视化工具例如 Tableau、帆软、Supset 等。关于可视化工具的对比可以参考这篇文章:吐血测评九款 BI 工具,BI 选型就看这篇(Tableau vs PowerBI vs superset vs DataEase vs ……)我们以 DataEase 为例是因为它开源免费,不需要购买,并且更符合国人使用的习惯,使用相对简单学习成本较低。
画图步骤
DataEase 支持多种格式的数据集,包括:数据库数据集、SQL 数据集、Excel 数据集、API 数据集和关联数据集(来自不同数据源的数据集可以关联在一起)。这里以 MySQL 数据源的 SQL 数据集为例,从官网截图创建方式。详情可以参考 DataEase 的在线文档:DataEase 文档
- 配置 MySQL 数据源:
链接 MySQL 数据库之前,请收集以下信息:
- 数据库服务器的 IP 地址和端口号
- 数据库名称
- 数据库用户名和密码
步骤一:登入 DataEase 系统。
步骤二:按照以下步骤,选择 MySQL 图标。
步骤三:填入收集的 IP 、端口、数据库等相关的信息。
详细说明信息如下:
步骤四:数据源检验,校验成功后如下图所示,点击保存即可。
- 创建数据集
如下图所示,点击【添加数据集】并选择【 SQL 数据集】。
支持两种连接方式:直连和定时同步。
输入正确的 SQL 语句
【序号 1】位置选择数据库; 【序号 2】位置为 SQL 语句输入区,在此区域输入正确的 SQL 语句; 【序号 3】点击可展示预览数据; 注意:此处只支持查询语句,且所有数据库均使用标准 SQL 语句,不支持数据库自身语法(比如:Elasticsearch、MongoDB 数据集也是输入标准的 SQL 查询语句)。
如下图所示,点击【保存】,SQL 数据集添加成功。
- 在仪表板界面中添加视图
点击【新建仪表板】,根据下图所示操作,在目录下自定义模版;
进入仪表板编辑界面,页面左侧点击【视图】,选择柱状图。
选择该视图需要的数据集(刚刚创建的数据集)
- 设计柱状图
视图设计功能区介绍
- 【序号 1】:数据操作区、样式编辑区和高级功能区切换
- 【序号 2】:搜索
- 【序号 3】:字段编辑
- 【序号 4】:更换数据集
- 【序号 5】:可选维度列表
- 【序号 6】:可选指标列表
- 【序号 7】:图表类型(包括 Echarts、AntV)
- 【序号 8】: 结果展示
- 【序号 9】:维度设置区
- 【序号 10】:指标设置区
- 【序号 11】:结果过滤器
- 【序号 12】:钻取维度设置区
- 【序号 13】:图表展示
将维度和指标鼠标拖动至对应的设置区,则完成了功能设置。
另外, DataEase 中可以更改视图的数据、样式包括高级设计等。
优势
- 交互性和动态性:DataEase 提供了强大的交互式数据探索和可视化功能,用户可以轻松地创建动态和交互式的柱状图,通过拖放操作实现数据筛选和探索。
- 可视化种类:DataEase 提供了丰富的可视化选项,包括多种柱状图类型(普通柱状图、堆积柱状图、群组柱状图等),以及其他图表类型,如折线图、散点图、地图等。
- 数据连接和整合:DataEase 支持多种数据源的连接和整合,可以轻松地处理和可视化不同数据源的数据。
劣势
- 学习曲线和成本:虽然相比 Python 等编程工具,DataEase 的学习成本很低,但相对于 Excel 而言,仍需要一定的学习成本。
- 高级功能的限制:某些高级功能和复杂的定制需求可能在 DataEase 中无法实现,需要借助其他工具或编程语言(如 Python、Matlab 等)来完成。
总体而言, Excel 适用于快速简单的图表制作和基本的数据分析,但限制较多;Python 适合于高度定制和处理大规模数据的需求,但学习成本高;DataEase 则强调交互性和动态性,适用于需要进行探索性数据分析和可视化的场景。它是 Excel 与 Pyhotn 的折中方案,能满足大部分的可视化需求,又不需要高昂的学习成本。在实际的使用环境中选择适合自己需求和技能水平的工具可以提高数据可视化的效果和效率。