什么是对数坐标系?
这个问题中的关键词是对数,只要理解了对数坐标系中的对数指的是什么意思,我们就能明白什么是对数坐标系。
对数定义:如果a的x次方等于N,那么数x叫做以a为底N的对数,记作x=logaN。其中,a叫做底数,N叫做真数,x叫做对数。
而对数坐标系中的对数指的是坐标轴上的刻度与原点的距离是用对数表示的,比如,对于以10为底数的对数坐标轴来说,如果某个刻度上标出的值为10(真数),则该刻度与原点的实际距离为loga10(a为底数,此处为10)也就是1。
什么是半对数坐标系?
基于平面直角坐标系,如果x和y轴中有且仅一个是对数坐标轴,则平面直角坐标系就成为了半对数坐标系。
对数坐标系有哪些适用场景?
(1)如果所研究的函数y和自变量x在数值上均变化了几个数量级;
(2)需要将曲线开始部分划分成展开的形式;
(3)当需要变换某种非线性关系为线性关系时。
半对数坐标系有哪些适用场景?
(1)变量之一在所研究的范围内发生了几个数量级的变化;
(2)在自变量由零开始逐渐增大的初始阶段,当自变量的少许变化引起因变量极大变化时,此时采用半对数坐标系,曲线最大变化范围可伸长,使图形轮廓清楚;
(3)需要将某种函数变换为直线函数关系。
在Python中,实现对数坐标系和半对数坐标系的设置
# 导入要用到的相关包,并设置交互环境
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
# 绘制普通坐标系下x和y的关系图像
x = np.array([10,100,1000,10000,100000,1000000])
y = np.array([0.01,0.1,1,10,100,1000])
plt.figure()
plt.plot(x,y,marker='o')
绘制结果:
# 绘制半对数坐标系下x和y的关系图像
plt.figure()
plt.plot(x,y,marker='o')
plt.semilogx() # 将x轴设置为对数坐标轴(semilogx()默认以10为底数,这意味着x轴上的每单位刻度的大小为10)
绘制结果:
plt.figure()
plt.plot(x,y,marker='o')
plt.semilogx() # 将x轴设置为对数坐标轴
plt.semilogy() # 将y轴设置为对数坐标轴
绘制结果:
从上面的半对数坐标图和对数坐标图中,我们不难发现:当坐标轴是对数坐标轴时,坐标轴上的刻度分布是不均匀的,且在两个大刻度之间,比如10^1和10^之间的刻度,从左到右是越来越密集的。这是因为(以本文中的对数坐标轴为例),对数坐标轴上的每单位刻度的大小均代表10,而假如某个刻度上所标的值是N,则该刻度到原点的距离为logaN(a是底数,此处为10);在两个大刻度10^1和10^2之间,从左到右虽然每增加一个刻度,刻度上标的值也增加10,但由于对数函数的增长是越来越缓慢的,所以刻度之间的距离是越来越小的。
参考:
https://jingyan.baidu.com/article/22a299b5dc27969e19376a0a.html
https://www.zhihu.com/question/29439226
https://baike.baidu.com/item/%E5%8D%8A%E5%AF%B9%E6%95%B0%E5%9D%90%E6%A0%87/4527400