python学习日记(绘图及可视化)Matplotlib方法

信息可视化(也叫绘图)是数据分析中最重要的工作之一。它可能是探索过程的一部分,例如,帮助我们找出异常值、必要的数据转换、得出有关模型的idea等。另外,做一个可交互的数据可视化也许是工作的最终目标。Python有许多库进行静态或动态的数据可视化,但我这里重要关注于matplotlib(http://matplotlib.org/)和基于它的库。

1、安装及导入matplotlib与numpy库

打开cmd,输入pip install matplotlib  pip install numpy

输入pip list, 显示如下图,即为安装成功

1.2、调用matplotlib与numpy库

import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
from numpy.random import randn

2、Figure和Subplot

matplotlib的图像都位于Figure对象中。可以用plt.figure创建一个新的Figure:

fig = plt.figure()

不能通过空Figure绘图。必须用add_subplot创建一个或多个subplot才行:

fig1 = fig.add_subplot(2, 2, 1)

此行代码的意思是:创建一个2x2的图,且目前选中的是4个subplot中的第一个,创建另外两个subplot

fig2 = fig.add_subplot(2, 2, 2)
fig3 = fig.add_subplot(2, 2, 3)

如果此时执行绘图命令,matplotlib就会在最后一个用过的subplot(如果没有则创建一个)上进行绘制

有时需要加一行代码使得图像显现出来

2.2、调整subplot周围的间距

利用Figure的subplots_adjust方法可以轻而易举地修改间距,wspace和hspace用于控制宽度和高度的百分比,可以用作subplot之间的间距

subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)

3、颜色、标记和线型

matplotlib的plot函数接受一组X和Y坐标,还可以接受一个表示颜色和线型的字符串缩写。

常用的颜色可以使用颜色缩写,也可以指定颜色码(例如,'#CECECE')。你可以通过查看plot的文档字符串查看所有线型的合集(在IPython和Jupyter中使用plot?)。

线图可以使用标记强调数据点。因为matplotlib可以创建连续线图,在点之间进行插值,因此有时可能不太容易看出真实数据点的位置。标记也可以放到格式字符串中,但标记类型和线型必须放在颜色后面。代码如下:

ax1.plot(randn(50).cumsum(), 'k--')
ax2.plot(randn(20).cumsum(),linestyle = 'dotted',color = 'b' )
ax3.plot(range(50), randn(50), linestyle='--', color='g')

运行结果如下:

python学习日记(绘图及可视化)Matplotlib方法_第1张图片

 4、刻度、标签和图例

要改变x轴刻度,最简单的办法是使用set_xticks和set_xticklabels。前者告诉matplotlib要将刻度放在数据范围中的哪些位置,默认情况下,这些位置也就是刻度标签。但我们可以通过set_xticklabels将任何其他的值用作标签:

##绘制随机漫步函数
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(randn(1000).cumsum())

##设置x轴标签、倾斜角度与大小写
ticks = ax.set_xticks([0, 250, 500, 750, 1000])
labels = ax.set_xticklabels(['one', 'two', 'three', 'four', 'five'],
                           rotation=30, fontsize='small')

结果如下所示:

python学习日记(绘图及可视化)Matplotlib方法_第2张图片

 Y轴的修改方式与此类似,只需将上述代码中的x替换为y即可

4.2添加图例

图例(legend)是另一种用于标识图表元素的重要工具。添加图例的方式有多种。最简单的是在添加subplot的时候传入label参数:

fig = plt.figure(); ax = fig.add_subplot(1, 1, 1)
ax.plot(randn(1000).cumsum(), 'k', label='one') 

可以调用ax.legend()或plt.legend()来自动创建图例,结果如下图所示:

ax.legend(loc='best')

python学习日记(绘图及可视化)Matplotlib方法_第3张图片

 

legend方法有几个其它的loc位置参数选项。请查看文档字符串(使用ax.legend?)。

loc告诉matplotlib要将图例放在何位置,除非指定位置,通常使用best。

小白一枚,日更 python学习日记,欢迎大家一起交流。本人所学参考书为:GitHub - iamseancheney/python_for_data_analysis_2nd_chinese_version: 《利用Python进行数据分析·第2版》

你可能感兴趣的:(学习,python)