实现将图像坐标轴平移到坐标原点
一般我们用python绘图画出来的函数图像坐标轴都是位于左下方,如下方实例:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-2, 2, 100) # 定义自变量区间[-2, 2],取点数量为100
y = np.log(1-x) # 定义需要绘图的函数为 ln(1-x)
plt.plot(x ,y) # 绘图
plt.show() # 显示图像
上面代码的显示效果如下图:
上图的坐标轴并不在坐标原点,我们可以通过添加如下语句实现坐标轴的平移:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-2, 2, 100) # 定义自变量区间[-2, 2],取点数量为100
y = np.log(1-x) # 定义需要绘图的函数为 ln(1-x)
#添加的语句如下面虚线分隔起来的部分所示:
#---------------------------------------------
ax = plt.gca() # 得到图像的Axes对象
ax.spines['right'].set_color('none') # 将图像右边的轴设为透明
ax.spines['top'].set_color('none') # 将图像上面的轴设为透明
ax.xaxis.set_ticks_position('bottom') # 将x轴刻度设在下面的坐标轴上
ax.yaxis.set_ticks_position('left') # 将y轴刻度设在左边的坐标轴上
ax.spines['bottom'].set_position(('data', 0)) # 将两个坐标轴的位置设在数据点原点
ax.spines['left'].set_position(('data', 0))
# ---------------------------------------------
#画出图像
plt.plot(x, y)
plt.show()
添加虚线部分代码后,结果如下:
如上所示,实现坐标轴平移只需原封不动的添加虚线部分代码即可。