Matplotlib通过axis()配置坐标轴数据详解
坐标轴范围设置
axis()可以直接传入列表[xmin,xmax,ymin,ymax]进行范围设置,
分别可以使用plt.axis()或者画布对象.axis()进行配置
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 20, 100)
y = x*2
plt.plot(x, y, 'r')
plt.axis([0,30,0,100])
plt.savefig('plot1.png')
plt.show()
在不进行传参的时候,调用plt.axis()和画布对象.axis()会返回坐标轴范围元组
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 20, 100)
y = x*2
plt.plot(x, y, 'r')
plt.axis([0,30,0,100])
print(plt.axis())
print(plt.gca().axis())
plt.savefig('plot1.png')
plt.show()
# (0.0, 30.0, 0.0, 100.0)
# (0.0, 30.0, 0.0, 100.0)
上述代码中的plt.gca()的作用是获取当前的画布对象
关于坐标轴范围配置的详细方法可以参考我的另一篇博客Matplotlib 画板画布设置,网格配置,及刻度设置_matplotlib设置刻度个数-CSDN博客
坐标轴比例设置和裁切
axis()方法中可以直接传入对应的比例设置方法或裁切方法的字符串,主要包括以下几种
• 'on':打开坐标轴(默认行为)。
• 'off':关闭坐标轴(不显示刻度和框线)。
• 'equal':设置 x 轴和 y 轴的比例相同(即单位长度相同)。
• 'scaled':设置坐标轴自动缩放,使得单位长度相同,但不一定是正方形。
• 'tight':使坐标轴紧贴数据范围。
• 'auto':自动调整坐标轴以适应数据。
• 'image':缩放数据并使其适合坐标轴,保持原始纵横比。
• 'square':设置坐标轴为正方形。
这里较为常用的有‘off’关闭坐标轴
‘equal’强行使两轴的单位长度相同(注意:这样会破坏原本的坐标轴范围设置)
‘scaled’scale具有调节、绘制的意思,这里也会使两轴单位长度相同,并会根据图像的实际大小范围进行图像裁切
off
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 20, 100)
y = x*2
plt.plot(x, y, 'r')
plt.axis([0,30,0,100])
plt.axis('off')
plt.savefig('plot1.png')
plt.show()
equal
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 20, 100)
y = x*2
plt.plot(x, y, 'r')
plt.axis([0,30,0,100])
plt.axis('equal')
plt.savefig('plot1.png')
plt.show()
scaled
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 20, 100)
y = x*2
plt.plot(x, y, 'r')
plt.axis([0,30,0,100])
plt.axis('scaled')
plt.savefig('plot1.png')
plt.show()