AI智能
改变未来

matplotlib绘图(二)——研究僧、科研狗们的进阶tips

首先,导入各种库:

导入文件

采用np.loadtxt( )导入文件,注意数据文件必须在当前工作路径下。

输入help(np.loadtxt)查看帮助文档:

loadtxt(fname, dtype=<class \'float\'>, comments=\'#\', delimiter=None,
converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0,
encoding=\'bytes\')

上面给出了帮助文档中方法loadtxt()所有的参数,接下来会逐一介绍:

fname:文件或字符串

dtype:数据类型,默认浮点数

comments:指示注释开头的字符,默认为“#”

delimiter:用于分隔值得字符,默认为空格

converters:用来定义将对应的列转换为浮点数的函数

skiprows:跳过开头的行数

usecols:确定哪几列被读取,第一列是0。例:\”usecols=(1,4,5)\”    ,将读取第2列,5列和第6列。

unpack:如果是True,将返回各列

ndmin:返回的数组将至少具有“ndmin”维度

图像设置

导入文件,并且读取数据后,就进行绘图操作:

其中,方法fig,ax=plt.subplots( 行数,列数)可以创建一个新的Figure,并返回一个含有已创建的subplot对象的NumPy数组,这样可以轻松地对ax数组进行索引。

其他关于图片坐标轴的设置在之前的推文已经介绍,这里不再赘述。

上方的图片中,坐标轴的刻度线是往外的,但是一般的要求是刻度线要往内,所以可以通过以下操作设置:

这里rcParams的使用前,注意要import matplotlib。

还可以全局设置图片像素、分辨率、图片大小和字体大小:

图片局部放大

有时候,图片需要局部放大才能看清楚曲线的分布。例如上图中,两条曲线的后半段几乎重合,应该创建一个子图观察图片局部的曲线趋势。

首先,需要导入:

之后,输入以下代码:

其中,方法

zoomed_inset_axes(ax,2,loc=1)中的关键参数zoom=2,代表的是scaling factor of the data axes,当zoom小于1时,子图的坐标被缩小,当zoom大于1时,子图的坐标被放大。其中关键参数loc=1,代表的是子图的位置。具体的设置有以下这些:

\'upper right\'  : 1,\'upper left\'   : 2,\'lower left\'   : 3,\'lower right\'  : 4,\'right\'        : 5,\'center left\'  : 6,\'center right\' : 7,\'lower center\' : 8,\'upper center\' : 9,\'center\'       : 10

绘制标记框可以用mark_inset,来表示放大的区域。其中关键参数loc1,loc2可以设置为{1,2,3,4}。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » matplotlib绘图(二)——研究僧、科研狗们的进阶tips