您的位置:首页 > 编程语言 > PHP开发

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

2021-01-02 16:58 423 查看

Matplotlib 是支持 Python 语言的开源绘图库,一个用于创建出版质量图表的绘图包(主要是2D方面),其支持丰富的绘图类型、简单的绘图方式以及完善的接口文档,广大科研狗们可以利用它得到一系列漂亮的图片啦!

在使用 Notebook 环境绘图时,需要先运行%matplotlib inline 命令。这条命令的作用是将 matplotlib 绘制的图形嵌入在当前页面中。

matplotlib API函数都位于matplotlib.pyplot模块中,需要导入该模块,并约定简称为plt。


一般常规的数据图的绘图分为如下步骤:

  • 导入 matplotlib 包相关工具包

  • 准备数据

  • 绘制原始曲线

  • 定制修改图片

  • 显示、保存图片

下面将按以上步骤具体介绍绘制方法:

准备数据

绘制原始曲线

matplotlib的图像都位于Figure对象中,可以采用plt.figure创建一个新的图形对象:

fig=plt.figure()

接下来,绘图布局的创建主要有三种方法:

axes=figure.add_axes([left,bottom,width,height])

fig, axes = pyplot.subplots(行数,列数)

axes = figure.add_subplot(行数,列数,序号)

首先,介绍第一种方法add_subplot( )

axes = figure.add_subplot(行数,列数,序号)

这其中,figure相当于画板,而ax则相当于画板上的画布。

接下来,介绍第二种方法add_axes( ),该方法最为繁琐,需要判别绘图区的位置。

axes=figure.add_axes([left,bottom,width,height])

其中

left:画布左侧边缘线与Figure画板左侧边缘线的距离

bottom:画布底部边缘线与Figure画板底部边缘线的距离

width:画布的宽度

height:画布的高度

第三种方法,plt.subplots( ),可以创建一个新的Figure,并返回一个含有已创建的subplot对象的NumPy数组。这样,可以轻松地对axes 数组进行索引,就好像是一个二维数组一样。

fig, axes = pyplot.subplots(行数,列数)

其中,线条的标记类型和线型必须放在颜色后面。

第三种方法最为简便,所以推荐学习这种方法。

定制修改图片

颜色、标记和线型

matplotlib的plot函数接受一组x和y坐标,还接受一个表示颜色和线型的字符串缩写。具体的颜色、标记线型在上面的实例中已经操作过,所以这边不再累述,下面就将几种常见的设置总结一下。

符号和颜色之间的对应关系

b: blue蓝色  

g: green绿色  

r: red红色  

c: cyan青色

m: magenta品红  

y: yellow黄色  

k: black黑色  

w: white白色

符号和线型之间的对应关系

-      实线

--     短线

-.     短点相间线

:     虚点线

标记风格有多种:

.  Point marker            

o  Circle marker    

v  Triangle down marker    

^  Triangle up marker       

<  Triangle left marker

>  Triangle right marker       

1  Tripod down marker     

2  Tripod up marker

3  Tripod left marker            

4  Tripod right marker       

s  Square marker

p  Pentagon marker           

*  Star marker                   

h  Hexagon marker

H  Rotated hexagon            

D Diamond marker          

d  Thin diamond marker

+  Plus marker         

刻度、标签和图例

给图形添加图例,是在添加suploot的时候添加参数label,之后调用axes.legend( )或plt.legend( )来显示图例。

图例中的 loc 参数标记图例位置,1,2,3,4 依次代表:右上角、左上角、左下角,右下角;0 代表自适应。loc='best'会选择最不碍事的地方。

诸如xlim、xticks、xticklabels之类的方法,分别控制图表的范围、刻度位置、刻度标签等。

若是在图像中添加一些注解文字,可以通过test、arrow和annotate等函数进行添加。

还有标题、坐标轴名称的设置等操作按以下代码实例说明:

显示、保存图片

显示图片采用plt.show( ),利用plt.savefig( )可以将图片保存到文件,其中选项dpi可以控制分辨率,bbox_inches可以剪除当前图表周围的空白部分。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: