数据可视化涉及用视觉表示来探索分析数据。 它与数据挖掘紧密相关,数据挖掘使用代码来探索数据的联系。 数据集可以是只有一行代码的一小段数字,或是以GB为单位的大量数据。
一个优秀的数据图表远不止是一个好看,更重要的时让人看到他不曾注意到的数据的联系。
借助Python的高效性,你可以很快速的看到一个基于数百万个的数据的数据集,当然也不只限于数字。
人们使用Python进行遗传学,气候研究,政治和经济分析等领域的数据密集型工作。
数据科学家用Python编写了一系列令人印象深刻的可视化和分析工具,您也可以使用其中的许多工具。
最受欢迎的工具之一是一个数学绘图库,matplotlib
。
我们将使用matplotlib
制作简单的图,例如折线图和散点图。之后,我们将基于随机游走的概念创建一个更有趣的数据集-从一系列随机决策中生成的可视化效果。
我们还将使用名为Pygal
的程序包,该程序包专注于创建在数字设备上可以正常使用的可视化。
您可以在用户与可视化交互时使用Pygal
来强调和调整元素的大小,并且可以轻松地调整整个的大小以适合小型智能手表或大型显示器。
我们将使用Pygal
探索以各种方式掷骰子时会发生的情况。
安装 matplotlib
pip install matplotlib
对于python开发者而言,安装第三方库已不是什么难事。笔者不在此处赘述。
要查看可以使用matplotlib
进行可视化的种类,请访问http://matplotlib.org/上的示例库。单击图库中的可视化文件时,您可以看到用于生成图的代码。
绘制简单的线图
我们使用matplotlib
绘制一个简单的折线图,然后对其进行自定义以创建我们数据的更直观的可视化。我们将使用平方数序列1,4,9,16,25作为图形的数据。
只需向matplotlib
提供如下所示的数字,剩下的就由matplotlib
完成:
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
plt.plot(squares)
plt.show()
代码运行结果:
我们需要导入pyplot
模块,为了在代码中重复输入pyplot
,我们使用别名plt
。
pyplot
包含许多函数帮助生成图表。
在第3行,我们创建一个列表来保存1~5的平方,然后将其传递给plot()
函数。
使用show()
打开matplotlib
的查看器并显示该图。
若您使用python
自带的IDLE
运行该代码,结果及界面如下图所示。查看器允许您缩放和导航图,如果单击磁盘图标,则可以保存所需的任何图图像。
若您使用Pycharm
运行该代码,结果及界面如下图所示。
后续将只展示Pycharm的运行结果图。
更改标签类型和图形粗细
观察上一段代码的运行结果,显示的数字在增加,但标签类型太小,线条太细。
matplotlib
允许您调整可视化的每个功能。
我们将使用一些可用的自定义项来提高该图的可读性,如下所示:
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
plt.plot(squares, linewidth=5)
# 设置图表标题和轴标签
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
# 设置标签大小
plt.tick_params(axis='both', labelsize=14)
plt.show()
代码运行结果:
第4行,线宽参数linewidth
控制plot()
生成的线的粗细。 第7行的title()
函数设置图表的标题。
在整个代码中反复出现的fontsize
参数控制图表上文本的大小。
使用xlabel()
和ylabel()
函数可以为每个轴设置标题,而函数tick_params()
可以为刻度线设置样式。该行显示的参数(axes = 'both')
会影响x轴和y轴上的刻度线,并将刻度线标签的字体大小设置为14(labelsize = 14)
。
如您在上图中看到的那样,该图更容易阅读:标签类型较大,折线图较粗。
校正图
注意到了吗?在图形末尾,4.0的平方显示为25!让我们改正它。
当给plot()
一个数字列表时,它假定第一个数据点对应于x坐标值0,但我们的第一个点对应于x值1。
我们可以同时给plot()
x的值和y的值。
import matplotlib.pyplot as plt
input_values =