这次因为一个不错的机会,我开了一门利用 Python 进行数据可视化的课程。
上课时用的资料只用一次就丢掉太可惜了,所以打算整理后放到博客上。
这篇文章的目标是让只懂 Python 的 for、if、函数等基础语法的人,用 Python 亲手画出第一张图表。
文中涉及的内容真的只是最基础的部分,希望你以“打好用 Python 进行数据可视化的基础”为目的来阅读。
这篇文章是接下来要写的一系列文章中的第一篇,属于开篇与搭建 Python 开发环境部分。
1. 开篇
1) 什么是数据可视化?
简单来说,数据可视化就是把数据做成图表或其他便于阅读的形式。
把又丑又乱的 PPT 做成好看、易懂的 PPT,本质上只是内容表现方式不同而已。
数据可视化也是同样的道理。

下面的资料是从 코글 下载的数据,利用名为 seaborn 的可视化包进行了可视化的示例。
右侧的图表比左侧的表格要直观得多,也更方便解读。
不过,为什么偏偏是 Python呢?

当然,用于数据可视化的工具绝不只有 Python。
用 Excel 也可以实现,还有很多其他工具。
如果是简单的数据,也完全可以在 Excel 里轻松体验数据可视化。

我认为,用 Python 学习数据可视化最大的魅力在于自动化。
只要把一整套代码写好,就能针对所有数据生成各种形式的图表;如果有按月份提供的一系列数据,甚至可以只点一下就完成可视化。

每个人感受到的优势都不一样。刻意把自己绑死在“Python”这个框架里只会降低乐趣。
有时候不太熟悉时,用 Excel 看看数据也可以,用 Excel 删除、排序数据也可以。
我们只是 多学会一款新的可视化工具而已。
2) 数据可视化的流程
数据可视化的大致流程如下所示。

举个例子,假设你接到一所小学的请求,为即将升入初中的学生做一场说明会。
这时你可能会经过下面这样的步骤来进行数据可视化。
先确定要给孩子们讲些什么内容。其中一项比如设定为:“上了初中以后,觉得最辛苦的是什么?”并通过问卷的形式来调查。
然后向孩子们发放问卷,回收并收集数据。
学生填写的答案没有固定格式,因此需要使用名为 KoNLPy 的包,先按音节切分并进行分词处理。另外,还要删除没有回答的记录等。
使用 Python 的 wordcloud 包对数据进行可视化。如果其中有一些无意义的单音节词,就把它们去掉后再进行一次可视化,最终完成图像。
在说明会上,与其对孩子们长篇大论地解释,不如像下面这样放出一张图,再围绕图来展开话题,往往会更有帮助。

3) 结构化数据与非结构化数据
上面的例子就是非结构化数据的情况。
非结构化数据没有固定格式,因此需要根据想要处理的方式,先对数据进行一系列预处理。
不过,这一过程相当困难。

所以在这篇文章中,我只打算以结构化数据——也就是格式已经确定的数据——为例,来讲解如何查看数据并绘制图表。
结构化数据大多都是数字。
2. 搭建 Python 开发环境
如果你还没有安装 Python 和 VS Code,请参考下面的文章先进行安装。
然后在 VS Code 的扩展中安装 Pylance。
Pylance 提供了非常强大的功能,一定要安装。

3. 用 PIP 安装包
PIP 是 Python 的包管理器。
通俗一点说,就是帮你把别人已经写好的程序下载下来使用。
首先打开终端(Terminal)。

然后帅气地输入下面这几行命令。
# Window 일 경우
pip install numpy openpyxl pandas matplotlib
# Mac OS 일 경우
pip3 install numpy openpyxl pandas matplotlib你会有一小会儿觉得自己像个黑客。等所有包都安装完成。
我本人已经安装过所有包了,所以会出现“已经安装”的提示。

安装结束后,输入下面的命令试试看。
# Windows 일 경우
pip show matplotlib
# Mac OS 일 경우
pip3 show matplotlib如果出现下面这样的信息,就说明安装完成了。

简单介绍一下这些包的用途:pandas 用于处理表格数据,matplotlib 用于数据可视化,numpy 则用于矩阵运算以及本次要用到的线性回归等。

4. 安装 Jupyter Notebook
先在任意位置新建一个文件夹。
我给它起了个历史悠久的文件夹名——“직박구리”。
然后在 VS Code 中点击左上角的菜单,选择“打开文件夹”,把这个文件夹打开。

接着,新建一个带有下面这个扩展名的文件。
扩展名是 .ipynb。
这个文件就是 Jupyter Notebook 文件。

然后输入编码圈的不成文规则 “hello world”,再点击旁边的三角形按钮。
接下来会弹出各种连接、安装的提示,全部允许就可以了,然后你会看到下方立刻输出了 hello world。

像这样,Jupyter Notebook 支持按单元格(Cell)输出,因此在最初搭建程序时,可以一边写代码一边调试。
当然,它也有运行速度偏慢的缺点。

比如,一般情况下运行 Python 代码,需要在终端里查看运行结果;但在Jupyter Notebook中,可以直接在执行代码的单元格正下方看到结果。
光是这一点,就能大大降低编码的难度。

5. 在下一篇文章中……
这篇文章主要是为了下一篇文章做一些整体准备。
如果你已经能在 VS Code 中正常使用 Python 和 Jupyter Notebook,那现在就暂时没有别的要做的了。
那就进入下一篇吧。结束。
댓글을 불러오는 중...