matplotlib学习
使用matplotlib.pylab库画图
- matplotlib可以用来作为机器学习可视化的作图工具,在这里简单记录一下常用的一些画图方法。
1234567891011121314151617181920212223242526272829303132333435363738394041424344
plt.figure()后到下一个plt.figure()前为同一张图的操作。 plt.grid(True) #加入网格 plt.plot(x,y) #图形中加入对点(x,y)的观察 plt.figure(num=标题数字,figsize=(长,宽),linewidth=1,linestyle=’--’,c=’red’) plot.xlim((1,2)) plot.ylim((3,4))#横纵坐标范围plt.xlabel('x axis label') plt.ylabel('y axis label') figure(figsize=(8,6),dpi=80) #创建一个长宽为8*6的图,设置分辨率为80 subplot(2,3,n)创建一个2*3的网格图,接下来的图样会在其第n块显示 savefig(“1.jpg”,dpi=80) #存图 plt.ytick([-2,-1,0,1],[‘bad2’,’bad1’,’ok’,’good’]) #对坐标打标记 画图时构造x、y序列:x=np.array([i/10.0 for i in range(-50,50,1)])x=np.array([i for i in range(-10,10,1)])x=linspace(-10,10,1000)*折线图 plt.plot(X,Y) 直接描点为折线图,当点数足够多时,折线会成为曲线。 配合使用linspace画图: x=linspace(-5,5,50); #生成一维点 y=x**2; #输入公式 plot.plot(x ,y) #画图 *散点图 plt.scatter(X,Y,s=75,c=函数,alpha=0.5) s:size c:color(或直接写color,可以不用管IDE显示红色的情况,内部有color属性) alpha:透明度 *柱状图 plt.bar(X,Y,facecolor=””,edgecolor=’white’) *等高线图 用于三维数据 plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot)'''8:等高线数 f(X,Y):高度(X,Y的映射值),alpha:透明度,cmap:colormap,颜色映射类型(样式) plt.clabel(C,inline=True,fontsize=10) 其中C为实例,使用 C= plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot)获取注意:f(X,Y)必须为长方形矩阵(内部代码实现),所以需要映射一定量的长方形布局的点再计算其值'''
使用等高线画决策边界
123456 |
x1_min, x1_max = x_test[:, 0].min() - 1, x_test_de[:, 0].max() + 1x2_min, x2_max = x_test[:, 1].min() - 1, x_test_de[:, 1].max() + 1xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, 0.01), np.arange(x2_min, x2_max, 0.01))Z = classifier.predict(mypca.inverse_transform(np.array([xx1.ravel(), xx2.ravel()]).T))Z = Z.reshape(xx1.shape)plt.contourf(xx1, xx2, Z, alpha=0.4, cmap=cmap) |
点颜色映射
1234567 |
from matplotlib.colors import ListedColormap...colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')cmap = ListedColormap(colors[:len(np.unique(y))])for idx, cl in enumerate(np.unique(y)): plt.scatter(x=X[y == cl, 0], y=X[y == cl, 1], alpha=0.8, c=cmap(idx), label=cl) |
三维图的创建
123456789101112131415161718 |
from mpl_toolkits.mplot3d import Axes3Dimport itertools...fig = plt.figure()ax = fig.add_subplot(111, projection='3d')'''A = XB = YZ = np.array(Z)'''Z = Z.flatten()C = np.array([i for i in itertools.product(A, B)])A = C[:, 0]B = C[:, 1]ax.plot_trisurf(A, B, Z, cmap='rainbow')plt.show() |
图像填色
12345678910 |
'''填充与坐标轴之间的图形'''plt.fill(x, y, color = "g", alpha = 0.3)'''填充两曲线之间的空间'''plt.fill_between(x, y1, y2, facecolor = "yellow")plt.fill_between(x, y1, y2, where= y1 >= y2, facecolor = "blue", interpolate= True)plt.fill_between(x, y1, y2, where= y2 > y1, facecolor = "yellow", interpolate= True) |
- source:hachp1.github.io
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论