码迷,mamicode.com
首页 > 其他好文 > 详细

Matplotlib 坐标轴

时间:2020-04-26 11:05:37      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:numpy   单位   pre   就是   留空   figure   定义   https   长度   

一、坐标轴上下限

使用plt.xlim()plt.ylim()来调整上下限的值:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,100)
plt.plot(x,np.sin(x))
plt.xlim(-1,11)
plt.ylim(-1.5,1.5)
plt.show()

技术图片

也可以让坐标轴逆序显示,只需要逆序提供坐标轴的限值:

plt.plot(x,np.sin(x))
plt.xlim(11,-1)
plt.ylim(1.5,-1.5)

或者使用plt.axis()方法设置坐标轴的上下限(注意区别axes和axis),参数方式是[xmin, xmax, ymin, ymax]

plt.plot(x,np.sin(x))
plt.axis([-1,11,-1.5,1.5])

axis的作用不仅于此,还可以按照图形的内容自动收缩坐标轴,不留空白。此种情况下,x和y轴的限值会自动计算,不用提供:

plt.plot(x,np.cos(x))
plt.axis(tight)
# -0.5, 10.5, -1.0993384025373631, 1.0996461858110391)

更多类似的常用设置值有:

  • off:隐藏轴线和标签
  • tight:紧缩模式
  • equal:以1:1的格式显示,x轴和y轴的单位长度相等
  • scaled: 通过更改绘图框的尺寸来获得相同的结果
  • square: x轴和y轴的限制值一样

二、坐标轴刻度

通常情况下,系统会自动根据提供的原始数据,生成x和y轴的刻度标签。但是很多时候,我们往往需要自定义刻度,让它符合我们的需要,比如下面的例子:

plt.plot(np.random.randn(1000).cumsum())
plt.show()

技术图片

我们可以手动提供刻度值,并调整刻度的角度和大小:

plt.plot(np.random.randn(1000).cumsum())
plt.xticks([0,250,500,750,1000],rotation=30, fontsize=large)
plt.yticks([-45,-35,-25,-15,0],rotation=30, fontsize=small)
plt.show()

技术图片

三、坐标轴刻度详解

Matplotlib图形对象具有层级关系。Figure对象其实就是一个盛放图形元素的盒子box,每个figure都会包含一个或多个axes对象,而每个axes对象又会包含其它表示图形内容的对象,比如xais和yaxis,也就是x轴和y轴。

  • 主要刻度和次要刻度

每个坐标轴都有主要刻度和次要刻度,主要刻度往往更大或者突出显示,而次要刻度往往更小,一般不直接显示。

下面是一个对数坐标轴,可以看到次要刻度:

ax = plt.axes(xscale=log, yscale=log)

我们发现每个主要刻度都显示未一个较大的刻度线和标签,而次要刻度都显示为一个较小的刻度线,并且不现实标签。

技术图片

 

  • 隐藏刻度与标签

如果我们想隐藏刻度或标签,就要着落在locator和formatter这两大属性上了:

ax = plt.axes()
x = np.linspace(0,10,100)
ax.plot(np.cos(x))

ax.yaxis.set_major_locator(plt.NullLocator())
ax.xaxis.set_major_formatter(plt.NullFormatter())
plt.show()

技术图片

可以看出,没有locator,刻度和标签都会被隐藏起来;没有formatter,隐藏标签,但刻度还存在。

  • 设置刻度数量

默认情况下,matplotlib会自动帮我们调节刻度的数量,但有时候也需要我们自定义刻度数量:

fig, ax = plt.subplots(4, 4, sharex=True, sharey=True)
for axi in ax.flat:
    axi.xaxis.set_major_locator(plt.MaxNLocator(4))
    axi.yaxis.set_major_locator(plt.MaxNLocator(4))
plt.show()

技术图片

Matplotlib 坐标轴

标签:numpy   单位   pre   就是   留空   figure   定义   https   长度   

原文地址:https://www.cnblogs.com/lavender1221/p/12777444.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!