import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y =0.1*x
plt.figure()
plt.plot(x, y, color='red', linewidth='2', linestyle='-', label='y=2x+1')
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel('x')
plt.ylabel('y')
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')# ax.xaxis.set_ticks_position('bottom')# ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))# Legend 图例
plt.legend(loc='best')# ticks 能见度for label in ax.get_xticklabels()+ ax.get_yticklabels():
label.set_fontsize(12)
label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.7))
plt.show()
Scatter 散点图
import matplotlib.pyplot as plt
import numpy as np
n =2**10
x = np.random.normal(0,1, n)
y = np.random.normal(0,1, n)
T = np.arctan2(y, x)
plt.scatter(x, y, s=75, c=T, alpha=0.5)
plt.xlim(-1.5,1.5)
plt.ylim(-1.5,1.5)
plt.xticks(())
plt.yticks(())
plt.show()
Bar 柱状图
import matplotlib.pyplot as plt
import numpy as np
n =12
x=np.arange(12)
y1 =(1-x/float(n)*np.random.uniform(0.5,1, n))
y2 =(1-x/float(n)*np.random.uniform(0.5,1, n))
plt.bar(x, y1, facecolor='#9999ff', edgecolor='white')
plt.bar(x,-y2, edgecolor='white')for a, b inzip(x, y1):# plt.text(a - 0.4, b + 0.05, '%.2f' % b)
plt.text(a, b,'%.2f'% b, ha='center')for a, b inzip(x, y2):
plt.text(a -0.4,-b -0.1,'%.2f'% b)
plt.show()
Contours 等高线图
import matplotlib.pyplot as plt
import numpy as np
defh(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(x, y, h(x, y),8, alpha=0.75, cmap=plt.cm.hot)# 热力图
C = plt.contour(x, y, h(x, y),8, colors='black', alpha=0.6, linewidth=0.05)
plt.clabel(C, inline=True, fontsize=10)
plt.xticks(())
plt.yticks(())
plt.show()
Image 图片
import matplotlib.pyplot as plt
import numpy as np
a = np.random.random(16).reshape(4,4)print(a)
plt.imshow(a, interpolation='nearest', cmap='bone', origin='upper')
plt.colorbar(shrink=0.3)
plt.xticks(())
plt.yticks(())
plt.show()
3D 数据
import matplotlib.pyplot as plt
import numpy as np
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)
r = np.sqrt(x**2+ y**2)
z = np.sin(r)
ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))
ax.contourf(x, y, z, zdir='z', offset=-2, cmap='rainbow')
ax.set_zlim(-2,2)
plt.show()