Python如何实现数据可视化

Python如何实现数据可视化

Python如何实现数据可视化

数据可视化

一安装  Matplotlib

在Linux系统中安装

matplotlib

Ubuntu17.10内置Python2版本和Python3版本,可以采用下面的方式安装Matplotlib。

$sudo

apt-get install python3-matplotlib

如果你使用的是Python 2.7,执行如下命令:

$ sudo apt-

get

install python-matplotlib

如果你安装了pip 就可以使用下面的方式安装:

$ pip install matplotlib

如果你的安装比较慢,可以尝试这种方式来安装:

$ pip3 install matplotlib -i

http:

/

/pypi.tuna.tsinghua.edu.cn/simple





常用的国内源地址有:

阿里云 http:

//mi

rrors.aliyun.com

/pypi/simple/



豆瓣(douban) http:

//

pypi.douban.com

/simple/



清华大学 http:

//

pypi.tuna.tsinghua.edu.cn

/simple/



中国科学技术大学 http:

//

pypi.mirrors.ustc.edu.cn

/simple/



测试matplotlib

#如何没有问题就是安装成功了



>>

>import matplotlib

>>

>



绘制简单的折线图

下面来使用

matplotlib

绘制一个简单的折线图,再对其进行定制,以实现信息更丰富的

数据可视化

。我们将使用平方数序列 1 、 4 、 9 、 16 和 25 来绘制折线图。

import

matplotlib.pyplot

as

plt

squares = [

1

,

4

,

9

,

16

,

25

]

plt.plot(squares)

plt.show()

plt.show()

# 打开

matplotlib

查看器,并显示绘制的图形。



Python如何实现数据可视化

修改标签文字和线条粗细

图形表明数字是越来越大的,但标签文字太小,线条太细。所幸

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()

Python如何实现数据可视化



校正图形

图形更容易阅读后,我们发现没有正确地绘制数据:折线图的终点指出 4.0 的平方为 25 !下 面来修复这个问题。

import matplotlib.pyplot as plt

input_values = [1, 2, 3, 4, 5]

squares = [1, 4, 9, 16, 25]

plt.plot(input_values, 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()

Python如何实现数据可视化

使用scatter()绘制散点图并设置其样式

有时候,需要绘制散点图并设置各个数据点的样式。要绘制单个点,可使用函数 scatter() ,并向它传递一对 x 和 y 坐标,它将在指定位置绘制一 个点:

import

matplotlib

.pyplot

as

plt



plt

.scatter

(2, 4)

plt

.show

()

Python如何实现数据可视化



下面来设置输出的样式,使其更有趣:添加标题,给轴加上标签,并确保所有文本都大到能够看清:

import

matplotlib.pyplot

as

plt

plt.scatter(

2

,

4

, s=

200

)

# 设置图表标题并给坐标轴加上标签



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()

Python如何实现数据可视化



使用scatter()绘制一系列点

要绘制一系列的点,可向 scatter() 传递两个分别包含 x 值和 y 值的列表,如下所示:

import

matplotlib.pyplot

as

plt

x_values = [

1

,

2

,

3

,

4

,

5

]

y_values = [

1

,

4

,

9

,

16

,

25

]

plt.scatter(x_values, y_values, s=

100

)

# 设置图表标题并给坐标轴加上标签



plt.title(

"Square Numbers"

, fontsize=

24

)

plt.xlabel(

"Value"

, fontsize=

14

)

plt.ylabel(

"Square of Value"

, fontsize=

14

)

# 设置刻度标记的大小



plt.tick_params(axis=

"both"

, which=

"major"

, labelsize=

14

)

plt.show()

Python如何实现数据可视化

自动计算数据

手工计算列表要包含的值可能效率低下,需要绘制的点很多时尤其如此。

import

matplotlib.pyplot

as

plt

x_values = list(range(

1

,

1001

))

y_values = [x**

2

for

x

in

x_values]

plt.scatter(x_values, y_values, s=

40

)

# 设置每个坐标轴的取值范围



plt.axis([

0

,

1100

,

0

,

1100000

])

plt.show()

Python如何实现数据可视化

matplotlib允许你给散点图中的各个点指定颜色。

默认为蓝色点和黑色轮廓,在散点图包含的数据点不多时效果很好。

但绘制很多点时,黑色轮廓可能会粘连在一起。

要删除数据点的轮廓,可在调用scatter()时传递实参edgecolor=

"none"



自定义颜色

要修改数据点的颜色,可向scatter()传递参数c,并将其设置为要使用的颜色的名称,如下所示:

plt.scatter(x_values, y_values, c=

"red"

, edgecolor=

"none"

, s=40)

Python如何实现数据可视化

你还可以使用RGB颜色模式自定义颜色。

plt.scatter(x_values, y_values, c=(0, 0, 0.8), edgecolor=

"none"

, s=40)

Python如何实现数据可视化



(0, 0, 0.8) 它们分别表示红色、绿色和蓝色分量。值越接近0,指定的颜色越深,值越接近1,指定的颜色越浅。

使用颜色映射

颜色映射(colormap)是一系列颜色,它们从起始颜色渐变到结束颜色。在可视化中,颜色映射用于突出数据的规律,例如,你可能用较浅的颜色来显示较小的值,并使用较深的颜色来显示较大的值。

import

matplotlib.pyplot

as

plt

x_values = list(range(

1001

))

y_values = [x**

2

for

x

in

x_values]

plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolor=

"none"

, s=

40

)

Python如何实现数据可视化

这些代码将y值较小的点显示为浅蓝色,并将y值较大的点显示为深蓝色。

自动保存图表plt.savefig(

"squares_plot.png"

, bbox_inches=

"tight"

)

绘制随机漫步图

下面的代码将随机漫步的所有点都绘制出来:

import

matplotlib.pyplot

as

plt

from

random_walk

import

RandomWalk

# 创建一个RandomWalk实例,并将其包含的点都绘制出来



rw = RandomWalk()

rw.fill_walk()

plt.scatter(rw.x_values, rw.y_values, s=

15

)

plt.show()

Python如何实现数据可视化



参考文献:《Python编程:从入门到实战》