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

matplotlib命令与格式:图像(figure)与子区域(axes)布局与规划

2017-12-25 16:59 519 查看


1.figure语法及操作

(1)figure语法说明

figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和高,单位为英寸;
dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框

(2)例子:

import matplotlib.pyplot as plt

创建自定义图像

fig=plt.figure(figsize=(4,3),facecolor='blue')

plt.show()


2.subplot创建单个子图

(1) subplot语法

subplot(nrows,ncols,sharex,sharey,subplot_kw,**fig_kw)



subplot可以规划figure划分为n个子图,但每条subplot命令只会创建一个子图 ,参考下面例子。

(2)例子

import numpy as np  

import matplotlib.pyplot as plt  

x = np.arange(0, 100)  

#作图1

plt.subplot(221)  

plt.plot(x, x)  

#作图2

plt.subplot(222)  

plt.plot(x, -x)  

 #作图3

plt.subplot(223)  

plt.plot(x, x ** 2)  

plt.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)

#作图4

plt.subplot(224)  

plt.plot(x, np.log(x))  

plt.show()  




3.subplots创建多个子图

(1)subplots语法

subplots参数与subplots相似

(2)例子

import numpy as np  

import matplotlib.pyplot as plt

x = np.arange(0, 100)  

#划分子图

fig,axes=plt.subplots(2,2)

ax1=axes[0,0]

ax2=axes[0,1]

ax3=axes[1,0]

ax4=axes[1,1]

#作图1

ax1.plot(x, x)  

#作图2

ax2.plot(x, -x)

 #作图3

ax3.plot(x, x ** 2)

ax3.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)

#作图4

ax4.plot(x, np.log(x))  

plt.show() 




4.面向对象API:add_subplots与add_axes新增子图或区域

add_subplot与add_axes都是面对象figure编程的,pyplot api中没有此命令

(1)add_subplot新增子图

add_subplot的参数与subplots的相似

import numpy as np  

import matplotlib.pyplot as plt  

x = np.arange(0, 100)  

#新建figure对象

fig=plt.figure()

#新建子图1

ax1=fig.add_subplot(2,2,1)      

ax1.plot(x, x) 

#新建子图3

ax3=fig.add_subplot(2,2,3)

ax3.plot(x, x ** 2)

ax3.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)

#新建子图4

ax4=fig.add_subplot(2,2,4)

ax4.plot(x, np.log(x))  

plt.show()



(2)add_axes新增子区域

add_axes为新增子区域,该区域可以座落在figure内任意位置,且该区域可任意设置大小
add_axes参数可参考官方文档:http://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure

import numpy as np  

import matplotlib.pyplot as plt  

#新建figure

fig = plt.figure()

# 定义数据

x = [1, 2, 3, 4, 5, 6, 7]

y = [1, 3, 4, 2, 5, 8, 6]

#新建区域ax1

#figure的百分比,从figure 10%的位置开始绘制, 宽高是figure的80%

left, bottom, width, height = 0.1, 0.1, 0.8, 0.8

# 获得绘制的句柄

ax1 = fig.add_axes([left, bottom, width, height])

ax1.plot(x, y, 'r')

ax1.set_title('area1')

#新增区域ax2,嵌套在ax1内

left, bottom, width, height = 0.2, 0.6, 0.25, 0.25

# 获得绘制的句柄

ax2 = fig.add_axes([left, bottom, width, height])

ax2.plot(x,y, 'b')

ax2.set_title('area2')

plt.show() 

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