py中matlibplot操作笔记


数据可视化之matlibplot二维绘图

概括性简单操作

import matplotlib.pyplot as plt #导入matlibplot库
fig = plt.figure() #声明画板对象,在这个对象上面画图,可传入参数fig = plt.figure(fig_name, figsize=),其中fig_name为str型
ax = fig.add_subplot(221) #声明Axes对象,里面的221为Axes对象,表示将整个画板划分为2行*2列的方格,这样就一共4个子图,然后1表示这是第一个子图。也可用ax = plt.subplot(r, c, p)

ax.set(xlim=[0.5, 4.5], ylim=[-2, 8], title='An Example Axes',ylabel='Y-Axis', xlabel='X-Axis') #使用set的方法设置Axes对象xy轴的范围,轴名称和标题
x = np.arange(10)
y = np.random.randn(10)
ax.plot(x, y, color='red')  #用定义的xy数据,红线绘图
plt.show() #绘图展示

几个常用函数的函数的具体说明

Axes对象及画板的操作

Axes对象是来定义轴axis的,二维则限定两个轴,三维则限定三个轴,所以对每一个Axes对象均可以有以下操作:

 set_xlim([xmin, xmax]) 和 set_ylim([xmin, xmax])     #设置XY轴的数值限制,参数 left, right左右段的极值
 set_title()    #设置对象的标题
 set_xlabel() 和 set_ylabel()     #设置轴的名字
 set_xticks / set_yticks(posi_list)  #设置坐标轴点到原点距离,参数是序列
 set_xticklabels / set_yticklabels() #设置轴点的名称,参数是name_list名称列表和rotation顺时针角度
注xticks / yticks、xlabel / ylabel、title、axis可以直接plt. 进行使用

Axes对象加入参数后,像是把画板划分成了一个矩阵,那是否可以使用二维矩阵的方式进行设置呢?答案是肯定的,可以使用二维数组的方式进行如下设置

fig, axes = plt.subplots(nrows=2, ncols=2,sharex=False, sharey=False,frameon=False)    #同时生成画板和相应子图区域,sharex表示是否共享x轴,frameon表示是否显示边框
axes[0,0].set(title='Upper Left')
axes[0,1].set(title='Upper Right')
axes[1,0].set(title='Lower Left')
axes[1,1].set(title='Lower Right')

布局调整:调整Axes子图的布局

fig.subplots_adjust(wspace=0.5, hspace=0.3, left=0.125, right=0.9, top=0.9,    bottom=0.1) #wspace调整水平间距,hspace垂直向上的距离,left为左边距,right右边距,注意这些数值都是百分数,比如右边距是10%

fig.tight_layout() #自动调整布局
ax.margins(x=0.1, y=0.1) #用于调整子图的内边距 

边界调整

ax.spines['top'].set_visible(False)     #设置Axes对象的顶边界不可见,也就是子图框顶上那根线不可见

2D绘图

常见的几种绘图

plt.plot(X,Y,c=, label=)    #直线图,XY为绘制点的列表,c控制颜色,label控制线条标签名
plt.scatter(X,Y,s=None, c='r', marker='o', cmap=None, norm=None,label=‘图例注释’,alpha=,linewidths,verts,edgcolors,cmap)  #散点图,XY为绘制点的列表,c为颜色,maker为图标形式,默认圆,norm为数据亮度(0-1范围内),alpha为透明度,linewidths,verts,edgcolors分别是点的边缘线宽、xy序列及边缘颜色,cmap控制渐变色
#绘制空心点可以将c='',然后边缘填充上颜色这种方式绘制
plt.hist(X,bins=10,range=)    #直方图,bins表示间隔,range是绘制直方图的范围
plt.bar / barh(bar_position, bar_height, bar_width)     #柱状图,控制坐标轴,柱状高度,柱状宽
plt.boxplot(data)    #箱形图,data为序列或数组类型
plt.contour() #等高线
plt.contourf() #带填充的等高线

其他操作

plt.legend()    #可以用于设置图例的边框、标签、字体等设置,也可以合并图例(多图例显示)

legend大佬的总结可参考

plt.savefig(r'C:\Users\jichao\Desktop\大论文\12345svm.png', dpi=300) #保存图片

ax.annotate(s, xy, *args, **kwargs) #注释文本时使用,s表示文本内容,xy是需要注释位置(元组型)、xytext:注释文本的坐标点(元组)、xycoords:被注释点的坐标系属性、textcoords :注释文本的坐标系属性,arrowprops:箭头的样式(字典形式,关键字是arrowstyle)等。

annotate解释的参考链接

3D绘图

mport matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

未完待续,有错更改


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM