Matplotlib 画板画布设置,网格配置,及刻度设置

matplotlib中常用的绘图功能集成在pyplot模块下

画板、画布设置

matplotlib中的画板设置一般通过figure()设置,常用的参数有figsize,facecolor,分别对应设置画板比例以及画板背景色,figsize的参数为元组形式的比例如(6,4)表示长宽比为6:4

而画布的设置一般通过plt.subplot()设置,绘制2d图中,参数一般有三个,如参数设置为2,2,1,则会将画板分成2*2块,也就是四块,最后一个参数1表示索引,切分后的画板从左至右,从上到下的索引分别为1,2,3,4.所以1对应左上角的索引.注意索引的表示方式可以写成(2,2,2)也可以表示为222这样的连续数值

注意:

  • 在使用matplotlib绘制图像的编码过程中,一般分为面向对象绘制以及面向过程绘制.一般来说,面向过程绘制是全程调用plt进行函数调用,而面向对象绘制一般会将画板和画布进行复制,用实力化的画板和画布对象进行方法调用
  • 使用面向过程,也就是不实例化画板画布对象进行方法调用的话,正常的绘制流程需要手动创建画板figure,以及画布subplot,如不手动进行创建,则会自动创建画板画布对象.例如在未创建画板的情况下创建subplot,则也会默认创建一个画板对象.
  • 在纯面向过程编码的时候,如进行了多个画布subplot的绘制,若需要使用plt.方法()对不同subplot进行渲染的过程中,会采取就近原则
import matplotlib.pyplot as plt
import numpy as np

plt.figure(figsize=(6,4),facecolor='w')

plt.subplot(221)
plt.subplot(224)
plt.grid()

plt.show()

这里使用plt.grid()函数的作用为网格绘制,根据就近原则,绘制在了2,2,2,也就是右下角的子图上.

如果采用面向对象绘制的话整个流程会更加清晰

这里将两个画布分别实力化为axes1和axes2,通过对象调用实例方法grid()会更加方便易懂

plt.show()

plt.show()会渲染所有已经绘制的图表,然后会清空已经绘制的图表

grid()网格线

上述演示的grid()网格线,分别使用了面向过程和面向对象两种方式,这里还需提及其参数axis,可以赋值'x','y'分别代表在x轴上生成竖线和在y轴上生成横线

import matplotlib.pyplot as plt

figure1 = plt.figure(figsize=(6, 4))

axes1 = plt.subplot(221)
axes2 = plt.subplot(224)

axes1.grid(axis="x")
axes2.grid(axis="y")
plt.show()

坐标轴刻度限制设置

面向过程

使用plt.xlim()调整x轴范围,参数为(最小值,最大值)

使用plt.ylim()调整y轴范围,参数为(最小值,最大值)

import matplotlib.pyplot as plt

figure1 = plt.figure(figsize=(6, 4))

axes1 = plt.subplot(221)
plt.xlim(0, 2)
axes2 = plt.subplot(224)
plt.ylim(0, 2)

axes1.grid(axis="x")
axes2.grid(axis="y")

plt.show()
面向对象

使用axes1.set_xlim()调整x轴范围,参数为(最小值,最大值)

使用axes1.set_ylim()调整y轴范围,参数为(最小值,最大值)

import matplotlib.pyplot as plt

figure1 = plt.figure(figsize=(6, 4))

axes1 = plt.subplot(221)
axes2 = plt.subplot(224)
axes1.set_xlim(0, 2)
axes2.set_ylim(0, 2)

axes1.grid(axis="x")
axes2.grid(axis="y")

plt.show()

直接配置坐标轴参数

使用axes1.axis()来进行配置

参数为列表:[xmin,xmax,ymin,ymax]

import matplotlib.pyplot as plt

figure1 = plt.figure(figsize=(6, 4))

axes1 = plt.subplot(221)
axes2 = plt.subplot(224)
axes1.axis([0, 2, -1, 1])
axes2.axis([0, 2, -1, 1])


plt.show()

设置刻度和刻度名称

面向过程

使用plt.xticks()来设置x轴刻度及刻度名称,参数为两个array_like的容器,分别为刻度,及对应的刻度名称

使用plt.yticks()来设置y轴刻度及刻度名称,参数为两个array_like的容器,分别为刻度,及对应的刻度名称

import matplotlib.pyplot as plt
import numpy as np

figure1 = plt.figure(figsize=(6, 4))

axes1 = plt.subplot(221)
plt.xticks(np.linspace(0, 2 * np.pi, 5), [0, "pi/2", "pi", "3pi/2", "2pi"])
axes2 = plt.subplot(224)


plt.show()
面向对象 

面向对象使用axes1.set_xticks()配置x轴刻度,使用.set_yticks()配置y轴刻度

使用axes1.set_xticklabels()配置x轴刻度名称,使用.set_yticklabels()配置y轴刻度名称

import matplotlib.pyplot as plt
import numpy as np

figure1 = plt.figure(figsize=(6, 4))

axes1 = plt.subplot(221)
axes2 = plt.subplot(224)
axes1.set_xticks(np.linspace(0, 2 * np.pi, 5))
axes1.set_xticklabels([0, "pi/2", "pi", "3pi/2", "2pi"])

plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值