matplotlib的基础

         通过图表表达会更更容易让人们理解数据,所以,能够很好的掌握matplotlib会让工作变的更加高效。

一,修改matplotlib的默认参数

对于matplotlib的配置信息是通过配置文件读取的。配置文件提供的几乎所有属性指定的默认值。matplotlib提供了二种修改默认参数的方式,但这种也是很高级的参数了,一般来说,还是用的比较少。

第一种是rcParams参数字典,然后修改字典的内容。

第二种是rc命令,传入关键字元祖来修改配置项。

import matplotlib as mp
mp.rcParams['lines.color'] = 'r'
mp.rc('lines', color='r')

若修改了默认配置之后,后悔了,可以通过rcdefaults()来重置设置。

设置主题的方法

import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')

二,常用的图表介绍以及基本的matplotlib画图工具(均基于import matplotlib.pyplot as plt)

1)Ipython的语法糖, 可以将图直接从后台调到前台来进行展示,用于cell下直接展示, 不需要show()函数。

%matplotlib inline

2)figure()方法,显式的创建一个图形,表示一个用户图形界面窗口,如果没有指明的话,系统会自己给定一个。

    可以通过ax = gca()来得到目前的一个坐标对象。

    也可以通过ax = plt.axes()的目前的一个坐标对象。

3)图的坐标,标签,标题等的设置

可以通过axis([a, b, c, d])方法来指定画布的横纵坐标的取值范围==plt.xlim(a, b)/plt.ylim(c, d)

axis('tight')采用紧凑的方式来排布横纵坐标。

axis('equal')采用横轴坐标相等的方式来排布。

不自己设定的时候,系统默认采用采用最小最大值点作为边界,这样可以看到所有的点。

在已有的图中添加一条线或者一个矩形,可以通过下面的方法来得到。

import matplotlib.pyplot as plt
plt.axhline()   # 绘制水平线,可以指定y的位置
plt.axvline()   # 绘制垂直线,可以指定x的位置
plt.axhspan()
plt.axvspan()

设置x,y轴的标签

plt.xlabel('x')
plt.ylabel('y')

设置图像的标题

plt.title('hello world')

设置图标

plt.plot(x, np.sin(x), '-g', label='sin(x)')
plt.plot(x, np.cos(x), ':b', label='cos(x)')
plt.legend()

 通过axes来设置等价

plt.xlabel() --> ax.set_xlabel()
plt.xlim() --> ax.set_xlim()
plt.title()  --> ax.set_title()

通过ax来设置刻度 

 4)plot函数

利用plot()方法得到一个线条的实例,第一种是直接在plot方法中,指定线条的各种属性,第二种也可以通过setp()方法来设置线条实例的属性。

plt.plot(x, y, linewidth=1,5)
line = plt.plot(x, y)
line.set_linewidth(1.5)
setp(line, linewidth=1.5)
setp(line, 'linewidth',1.5)

常用的属性:

apha 透明度,float

label 标签,str, 设置图标

linestyle(ls)  线条风格,-/--/-./:/...等

linewidth(lw) float, 线条宽度 

marker 线条标记 如+/./s/*/^/</>/o/D等

markersize 线条标记的大小

markeredgecolor 线条标记边框的颜色

markeredgewidth 线条标记宽度值

markerfacecolor 线条标记填充的颜色

color(c)线条颜色 b/g/r/y/c/k/m/w 或者通过RGB的数组来指定color, 或者通过色表来标记(‘#eeefff’)

ax = plt.axes()
ax.plot(x, y)
ax.set(xlim = (0, 10), ylim =(1, 2), xlabel='x', ylabel='y', title='hello world')

改变坐标的刻度

ax = plt.gca()
ax.locator_params(tight=True, nbins=10)  # 10个刻度
ax.xaxis.set_major_locator(matplotlib.ticker.MultipleLocator(10))

 5)子图做法

通过ax来是实现

fig = plt.figure()
ax1 = fig.add_axes([0.1, 0.5, 0.8, 0.4], xticklabels=[], ylim=(-1.2, 1.2))
ax2 = fig.add_axes([0.1, 0.1, 0.8, 0.4], ylim=(-1.2, 1.2))
ax1.plot(x, y1)
ax2.plot(x, y2)

通过plt.subplot来实现

subplot是图形中的子区,有三个参数,以元祖的方式输入,第一个是行,第二个是列,是三个是子区的标号。

subplot是表示的是构建画布

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(1, 10, 10)
plt.subplots_adjust(hspace=0.4, wspace=0.4)
for i in range(1, 7):
    plt.subplot(2, 3, i)
    plt.plot(np.sin(x*i))

subplots是同时构建多个子图。

6)scatter

scatter是专门画散点图的,与plot相比更加强大,对于plot而言,每个点是通过的设置,而对于scatter是可以单独的控制每个点的属性(颜色,大小,透明度等)。但相比较而言,plot更快,更高效。

主要属性:color, s(sizes大小), alpha,cmap(color map颜色的渐变,Blues/binary/viridis/RdBu/PuOr/rainbow/jet等)

可以通过cb= plt.colorbar()来进行比对说明,可以通过cb.set_label('**')给colorbar加一个名字。

7)histogram 直方图

hist()中的属性:

bins 默认值为10,表示几个直方图的意思。

range bin的范围,当bins为序列的时候,这个参数失效。

normad 进行归一化处理,形成概率密度

histtype 直方图的类型,可选的第一个是barstacked 就是多种数据堆叠的直方图;第二种是step,未填充的直方图;第三种是stepfilled创建默认填充的线性图。

align bin边界之间矩形条的居中设置,默认值为mid, 当然也可能是left, right

color 颜色

orientation 方向,默认为vertical(竖直),可以设置为水平(horizontal)

8)styling 风格

import matplotlib.pyplot as plt
plt.style.use('stylename')    # 整体保持一个风格
with plt.style.context('stylename'):
    # make a plot  # 仅在with的段落中使用这个风格

9) pie 饼图

猜你喜欢

转载自blog.csdn.net/angela2016/article/details/85330852