Python大数据分析1:数据可视化基本方法

数据可视化本身不仅是一种数据结果的呈现方法,而且也提供了一种分析数据的角度,尤其是一些结合大数据和时空信息的可视化展示,往往能够给我们提供一些单独从数据内容上无法直接和直观获取的认识和发现。因此数据可视化几乎是所有数据分析工具必备的功能。在前文章节中,我们简单介绍过基本使用,从这一章开始,我们开始深入了解一下。

我们还是回到从以前的问题开始,即股票数据那个例子。

# coding:utf-8
import pandas as pd
frame = pd.read_csv('C:\\temp\\股票数据.csv', encoding='GBK')
frame = frame.set_index('日期')
frame.index = pd.to_datetime(frame.index)
print(frame)

这里将数据文件直接加载成DataFrame,并且将日期设置为索引,并转换为Datetime时间类型,以方便处理。

需要补充说明下,因为代码和显示内容中含有中文,因此如果出现字符编码错误,

请核实是否将当前编辑器的文件编码设置为默认的GBK。

没有问题的话,我们就首先还是使用最为简单的线性图来绘制。所谓线性图,就是一般最为常见的二维坐标图。我们需要设置的只需x和y两个轴的数据,这些xy数据两两对应,会在屏幕上生成很多点,连续两点之间使用直线连接。如果数据较为稠密,远远看去,这些由很多很短的直线连接起来的完整线会看起来呈现圆滑曲线的效果。

这是最为简单基本的代码:

# coding:utf-8
import pandas as pd
import matplotlib.pyplot as plt

frame = pd.read_csv('C:\\temp\\股票数据.csv', encoding='GBK')
frame = frame.set_index('日期')
frame.index = pd.to_datetime(frame.index)
plt.plot(frame['收盘价'])
plt.show()

其中导入了matplotlib库中的pyplot类型。matplotlib是一个非常常见好用的Python绘图库,它的plot函数就是线性图的意思,show表示显示。这些都是最为基本的使用。

这里大家可能会问,为什么plot只有一个数据?那是因为默认情况下,索引就是一个数据列,而且是x横轴列,所以这也是为什么一开始我们就设置DataFrame索引的原因。

如果我们想改变,那就需要自己写出两个数据列。

plt.plot(frame[‘开盘价’], frame[‘收盘价’])

plt.show()

这里绘图时就不再采取默认的索引作为横轴,而是第一个列为横轴,即开盘价,第二个列为纵轴,即收盘价。

图像看起来有点怪,主要原因在于这里每个时间相邻的两个点都画上了直线,显然这是多余的。但是,我们发现大部分点都位于对角线上,说明开盘价和收盘价基本上差不多,因为股市一天涨跌有10%的限制,开盘价高的点靠右下方,收盘价高的靠近左上方。

如何解决这个比较怪异的显示呢?其实这时我们无需绘制连续两点之间的直线,只需将点绘制出来即可,这个可以通过改变线性图的显示效果来实现:

plt.plot(frame[‘开盘价’], frame[‘收盘价’], ‘ro’)

plt.show()

这里的第三个参数表示点的样式,r表示红色,o表示显示一个点。

此时的结果就变成了红色的点状图。

因此线性图就显得不太合适,而应该使用散点图。

plt.scatter(frame[‘开盘价’], frame[‘收盘价’])

plt.show()

从中可以看到此时的点点之间不再具有连接直线。这张图很好的说明了在有些价格组合区间更为稠密,比如在15元左右,说明这段时间出现的行情较多,而有些则更为稀疏,比如25元左右。

这也说明,我们在选择图形种类时要能根据需要有选择的使用,而不是一味的随意使用,同时也需要了解一些常见图形的种类和特点。

最后我们来谈谈绘图的一些整体性设置问题。这些步骤可以更好的帮助你完成一些设置,比如图形的大小。默认情况下,大家可能感觉到了,每次生成的图形都不是很大,如果想设置为更大的尺寸,可以设置为:

plt.figure(figsize=(9, 9), dpi=100)

该语句只需在show显示前设置即可,9表示英寸,大约每英寸有72个像素点,显然越大的话,图形就越大,后面这个dpi表示分辨率,可以理解为笔头的粗细,显然越小图像越清晰,越大粒度越大越粗糙。

另外,有时为了分享方便,我们需要将图片保存下来,这个即可以在图形显示界面中点击最右边的保存按钮来进行,

也可以通过代码直接保存而无需显示。

plt.savefig(“D:\\stocks.png”)

Python大数据分析1:数据可视化基本方法》有1个想法

leeshuqing进行回复 取消回复

邮箱地址不会被公开。 必填项已用*标注