matplotlib包

目录

    • 1 plt.scatter() 描绘点
    • 2 plt.bar() 绘制柱状图
    • 3 plt.contour() 绘制等高线
    • 4 plt.xlim(a, b) 设置x轴的显示范围a~b
    • 5 plt.grid() 绘制网格参考线
    • 6 plt.xlabel(u'x轴', fontsize=13)
    • 7 plt.title(u'标题', fontsize=13)
    • 8 plt.set_facecolor('none') 设置背景透明
    • 9 matplotlib 画动态图
    • 10 matplotlib 画多个图
    • 11 plt.pcolormesh() 绘制分类,用颜色区分
    • 12 plt.ginput() 通过鼠标在画布上点击,生成数据
    • 13 推荐的绘图背景色和对应描点的颜色
    • 14 热度/灰度图像显示

1 plt.scatter() 描绘点

plt.scatter(x, y,s=, c=20, '#ff0000', marker='o', cmap=, norm=, 
			vmin=, vmax=, alpha=, linewidths=, verts=, edgecolors=,data=)   
x,y 需要绘制的点
c 点的颜色,可以直接填单色,也可以是一个数组,数组映射于cmap中的颜色。若c=’’,则为透明
s 点的大小,可以是一个数字,也可以是一个数组,即每个点有对应大小
marker 点的形状,一共有这些选项(‘o’, ‘v’, ‘^’, ‘<’, ‘>’, ‘8’, ‘s’, ‘p’, ‘*’, ‘h’, ‘H’, ‘D’, ‘d’, ‘P’, ‘X’)
cmap 需要映射的颜色
edgecolors 绘制点的边缘色。一般在c=’'时,设置边缘的可绘制空心圆

2 plt.bar() 绘制柱状图

3 plt.contour() 绘制等高线

4 plt.xlim(a, b) 设置x轴的显示范围a~b

5 plt.grid() 绘制网格参考线

6 plt.xlabel(u’x轴’, fontsize=13)

7 plt.title(u’标题’, fontsize=13)

8 plt.set_facecolor(‘none’) 设置背景透明

9 matplotlib 画动态图

1) 方法一

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
plt.ion()

try:
	ax.lines.remove(line[0])
except Exception:
	pass

lines = ax.plot(x_date, y_date, 'r-', lw=5) #可以在这之前更新x_data和y_data的数据
plt.pause(0.1) #绘图暂停0.1s
plt.pause(0) #防止图片自动关闭

2) 方法二

from matplotlib.animation import FuncAnimation

fig = plt.figure()
ax = fig.add_subplot()
xdata, ydata = [],[]
ln, = ax.plot([], [], animated=False) #注意返回的ln后面有的',',ln是在FuncAnimation中的一条线索

def init():
	ax.set_xlim() 等初始化
	return ln

def update(n):
	# 可以根据传入的n来更新xdate,ydate
	ln.set_data(xdata, ydata)
	return ln
	
ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 10), init_func=init, blit=True)
plt.show()

# 其中:
FuncAnimation(fig, func, frames, init_func, interval, blit)
# fig:绘制动图画布的名称
# func:自定义的运动函数,也是更新函数
# frames:动画长度,整个动画中所有的帧数,在函数运行的时候,其值会传递给上面的函数
# init_func:初始化函数,自定义起始帧,也就是最开的画面,
# interval:更新频率,单位ms
# bit:为True则只更新改变了的值,为False更新所有值

10 matplotlib 画多个图

plt.figure(figsize=(5,5), dpi=40)  #可选。为将要创建的画板(即窗口)设置大小,figsize=(宽度,高度),dpi=像素点大小
plt.figure(1) #创建第1块画板
ax1 = plt.subplot(211) #将第1块画板划分为2行1列组成的区块,并获取到第1块区域
plt.xxx() #在该区域画图
# 如果ax1的创建采用fig = plt.figure(1)       
# ax1 = fig.add_subplot(211),那么可以用ax1.xxx()的方式画图,因为add_plot是面向对象
ax2 = plt.subplot(212) #将第1块画板划分为2行1列组成的区块,并获取到第2块区域
plt.xxx() #在该区域画图
plt.figure(figsize=(5,5), dpi=40) #可选
plt.figure(2) #创建第2块画板
plt.xxx() #在该区域画图
plt.figure(1) #切换到第1块画板
ax1.xxx() #继续操作对应的区域
plt.show()

11 plt.pcolormesh() 绘制分类,用颜色区分

matplotlib包_第1张图片
X、Y:是需要绘制的点,可以用 np.mgrid[1:3:3j, 4:6:3j] 生成;
Z:是对应点的标签,标签中值的范围映射于cmap属性中颜色变化的范围;
cmap:是显示的颜色,可以为渐变色,也可以为几种单色
cm有两种获取方式:
1) 方法一

cm = plt.cm.get_cmap('rainbow')  

这里的rainbow是渐变色,颜色的选取可以参考官网

2) 方法二

import matplotlib as mpl
cm = mpl.colors.ListedColormap(['#A0FFA0', '#FFA0A0', '#A0A0FF']) #这里是三种单色
cm = mpl.colors.ListedColormap(['g', 'r', 'b']) #

12 plt.ginput() 通过鼠标在画布上点击,生成数据

参数:

n 将要采集数据点的个数,默认为1,如果为负值时,如-1,将不限制个数
timeout 时间停留限制,默认为30s
show_clicks 显示点击的点,默认为True
mouse_add 鼠标左键点击增加点,默认值为1
mouse_pop 鼠标右键点击删除点,默认值为3
mouse_stop 鼠标中健点击结束采样, 默认值为2

例:

data = plt.ginput(-1)
print(data)
plt.show()
# plt.show() 会抢先执行,也就是会显示出画布之后,再用plt.ginput收集数据,收集完后,会执行它后面的语句。

13 推荐的绘图背景色和对应描点的颜色

‘#ff0000’, ‘#e100de’, ‘#00e11a’,
‘#e1de00’, ‘#00d9e1’, ‘#0060ff’
背景 ‘#5a0000’, ‘#60005f’, ‘#005a0a’,
‘#575600’, ‘#005457’, ‘#002460’

对应的颜色如图:
matplotlib包_第2张图片

14 热度/灰度图像显示

num = mnist.train.images[0] #num为 ‘长x宽’的二维数组
plt.imshow(num) #热成像,num中每一个元素的数字对应着某种颜色
#plt.imshow(num, vmin=0, vmax=1, cmap='gray') 设置颜色映射的上下限,cmap设成gray就是灰度显示,否则默认热度显示 
plt.show()

你可能感兴趣的:(技术类)