首先,导入各种库:
导入文件
采用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}。