matplotlib学习笔记-axis.labelpad是什么意思,有什么用?坐标轴标签的位置坐标

本人在学习C语言中文网的matplotlib教程时,看到了以下的代码。

C语言中文网:C语言程序设计门户网站(入门教程、编程软件)

import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(1, 2, figsize=(10,4))
x = np.arange(1,5)
axes[0].plot( x, np.exp(x))
axes[0].plot(x,x**2)
axes[0].set_title("Normal scale")
axes[1].plot (x, np.exp(x))
axes[1].plot(x, x**2)
#设置y轴
axes[1].set_yscale("log")
axes[1].set_title("Logarithmic scale (y)")
axes[0].set_xlabel("x axis")
axes[0].set_ylabel("y axis")
axes[0].xaxis.labelpad = 10
#设置x、y轴标签
axes[1].set_xlabel("x axis")
axes[1].set_ylabel("y axis")
plt.show()

除了axes[0].xaxis.labelpad = 10这一行代码我看不懂,其他的我都能看懂,于是乎我就在网上搜索良久,几乎没什么人发过,于是我自己再试了试,可算知道这个属性是啥意思了。

以x坐标轴为例,如果是y坐标轴,就把xaxis替换为yaxis、xlabel替换为ylabel来理解。

首先labelpad这个参数就是用来指定坐标轴标签的位置的,其次这个参数既可以通过axes.xaxis.labelpad调用,也可以通过在定义坐标轴时直接指定,代码语法示例axes[0].set_xlabel("x axis", labelpad=10)。

因此上面的代码等效于下面的代码。

import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(1, 2, figsize=(10,4))
x = np.arange(1,5)
axes[0].plot( x, np.exp(x))
axes[0].plot(x,x**2)
axes[0].set_title("Normal scale")
axes[1].plot (x, np.exp(x))
axes[1].plot(x, x**2)
#设置y轴
axes[1].set_yscale("log")
axes[1].set_title("Logarithmic scale (y)")
axes[0].set_xlabel("x axis",labelpad = 10)  #已改动
axes[0].set_ylabel("y axis")
#axes[0].xaxis.labelpad = 10  #已注释
#设置x、y轴标签
axes[1].set_xlabel("x axis")
axes[1].set_ylabel("y axis")
plt.show()

既然该参数表示坐标轴标签的位置坐标,那么肯定有正负之分,当取值为复数时,标签就落到图域里去了。

import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(1, 2, figsize=(10,4))
x = np.arange(1,5)
axes[0].plot( x, np.exp(x))
axes[0].plot(x,x**2)
axes[0].set_title("Normal scale")
axes[1].plot (x, np.exp(x))
axes[1].plot(x, x**2)
#设置y轴
axes[1].set_yscale("log")
axes[1].set_title("Logarithmic scale (y)")
axes[0].set_xlabel("x axis",labelpad = 10)  #已改动
axes[0].set_ylabel("y axis")
axes[0].xaxis.labelpad = -50  #取消注释,再次取负值,labelpad的10被替换为-50
#设置x、y轴标签
axes[1].set_xlabel("x axis")
axes[1].set_ylabel("y axis")
plt.show()

上面的代码运行后,输出的图片如下。

 

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值