Python / 16 数据可视化

数据可视化

在我们开始的我们的可视化的之旅之前,需要简单的介绍一些数据分析工具,我们的数据可视化的任务也是建立在数据分析的基础之上。Python 的主要数据分析工具如下所示:

  • Numpy:这个是数据计算的工具,主要用来进行矩阵的运算,矢量运算等等。

  • Scipy:科学计算函数库,主要用在学术领域,主要包含线性代数模块,信号与图像处理模块,统计学模块等等。

  • Sympy:数学符号计算库

  • Pandas:包含了 numpy 的各种功能,并提供了更加强大的函数,以及更加丰富的数据模型。
    Pandas的主要数据结构为 Series 和 DataFrame。

    • Series 可以当作是一般的数组,区别就是Series数组有索引的性质,这个和普通的数组十分不同。我们可以通过series.index来获取index的值。

    • DataFrame 可以把它想像成数据的表格的概念,它是把一个或者多个Series按照逻辑合并后的二维数据结构。

接下来让我们开始我们数据可视化之旅吧。

首选,我们来画一张最基本的直方图。

from matplotlib import pyplot //引入matplotlib库进行绘制图形
import numpy as np  //引入numpy,来生成随机数
x = np.arage(12)
y = np.random.rand(12)
labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec]
pyplot.bar(x,y, color='red', tick_label=labels)  //绘制条形图
pyplot.title('first chart')
plot.show()

上面这幅是条形图,我们可以看到 x 轴是月份,总共分为 12 个月,纵轴则是每个月的数值在 0-1 之间的值。

x = np.random.randn(800)
pyplot.hist(x,150)   //绘制直方图
pyplot.title('second chart')
pyplot.show()


上面这幅是直方图,默认的为蓝色,数据在我们取随机数之后,基本上是呈现一个对称分布的情况。

from mpl_toolkits.mplot3d import Axes3D   //引入三维图形包

pic = pyplot.figure()
ax = Axes3D(pic)
x = np.arange(-1, 3, 0.3)  //x轴取值范围
y = np.arange(-1, 3, 0.3   //y轴取值范围
a, b = np.meshgrid(x,y)    //绘制二维图形
c = a**2 + b **2
ax.plot_surface(a,b,c, cmap= pyplot.get_cmap('rainbow')) //绘制三维图
ax.set_zlim(-1, 10)
pyplot.title('last chart')
pyplot.show()

除了简单的二维图形,同样,matplotlib 也可以很轻松的绘制三维图形,上面的代码就是我们绘制三位图形的简单版本,效果如下所示:

总结

爬虫只是我们获取数据的第一步,我们最终的目的是要让数据服务于人类,因此,我们需要Numpy,Pandas 等数据分析工具分析数据,然后使用 matplotlib 工具来绘制可视化图形,从而让我们的数据更加生动,更加被一般用户所理解和使用。