# coding:utf-8import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3,3,50)
y =0.1*x
plt.figure()# 设置zorder给plot在z轴方向排序
plt.plot(x, y, linewidth=10, zorder=1)
plt.ylim(-2,2)
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))# 对被遮挡的图像调节相关透明度,对x轴和y轴的刻度数字进行透明度设置for label in ax.get_xticklabels()+ax.get_yticklabels():
label.set_fontsize(12)# 调整字体大小
label.set_bbox(dict(facecolor='white', edgecolor='none', alpha=0.7, zorder=2))# bbox设置目的内容的透明度相关参数,facecolor调节box前景色,edgecolor设置边框,alpha设置透明度
plt.show()
画图种类
Scatter散点图
# coding:utf-8import numpy as np
import matplotlib.pyplot as plt
n =1024# data的size
X = np.random.normal(0,1, n)# 产生n个0-1之间的数
Y = np.random.normal(0,1, n)
T = np.arctan2(Y, X)# for color value
plt.scatter(X, Y, s=75, c=T, alpha=0.5)
plt.xlim(-2,2)# 范围是-2到2
plt.ylim(-2,2)
plt.xticks(())# 隐藏坐标刻度信息
plt.yticks(())
plt.show()
Bar柱状图
# coding:utf-8import numpy as np
import matplotlib.pyplot as plt
n =12
X = np.arange(n)
Y1 =(1-X/float(n))*np.random.uniform(0.5,1.0, n)
Y2 =(1-X/float(n))*np.random.uniform(0.5,1.0, n)# plt.bar(X, +Y1)# plt.bar(X, -Y2)# 加颜色和数据
plt.bar(X,+Y1, facecolor='#9999ff', edgecolor='white')
plt.bar(X,-Y2, facecolor='#ff9999', edgecolor='white')for x, y inzip(X, Y1):# ha: 水平# va: 纵向
plt.text(x, y,'%.2f'% y, ha='center', va='bottom')for x, y inzip(X, Y2):
plt.text(x,-y,'%.2f'% y, ha='center', va='top')
plt.xlim(-.5, n)
plt.xticks(())
plt.ylim(-1.25,1.25)
plt.yticks(())
plt.show()
Contour等高线图
import numpy as np
import matplotlib.pyplot as plt
deff(x, y):return(1- x /2+ x**5+ y**3)*np.exp(-x**2-y**2)
n =256
x = np.linspace(-3,3, n)
y = np.linspace(-3,3, n)
X, Y = np.meshgrid(x, y)# 颜色填充,使用函数plt.contourf把颜色加进去
plt.contourf(X, Y, f(X, Y),8, alpha=.75, cmap=plt.cm.hot)# 等高线绘制,使用plt.contour函数划线
C = plt.contour(X, Y, f(X, Y),8, colors='black', linewidth=0.5)# 添加高度数字
plt.clabel(C, inline=True, fontsize=10)
plt.xticks(())
plt.yticks(())
plt.show()
Image图片
import numpy as np
import matplotlib.pyplot as plt
a = np.array([0.3136,0.3653,0.4237,0.3653,0.4395,0.5250,0.4237,0.5250,0.6515]).reshape(3,3)
plt.imshow(a, interpolation='nearest', origin='lower')
plt.colorbar(shrink=.92)
plt.xticks(())
plt.yticks(())
plt.show()
3D数据
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-4,4,0.25)
Y = np.arange(-4,4,0.25)
X, Y = np.meshgrid(X, Y)# x-y平面的网格
R = np.sqrt(X**2+Y**2)
Z = np.sin(R)# rstride和cstride分别代表row和column的跨度
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))# 投影
ax.contourf(X, Y, Z, zdir='z', offset=-1.2, cmap=plt.get_cmap('rainbow'))
plt.show()