python - 如何在 matplotlib 中显示笛卡尔坐标轴?
问题描述
所以我正在开发一个程序,它显示一个函数在一个区间内的图形,并且绘图大小由 matplotlib 自动处理。唯一的事情是,它调整大小而不显示 x=0 和 y=0 笛卡尔轴。到目前为止,我尝试的所有操作,例如plt.subplot()
,只影响显示在底部和左侧的轴,而不影响笛卡尔轴。有没有办法添加轴?
这是一些示例代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-2, 1, 100)
f = lambda x: x**2 - 1
plt.plot(x, f(x))
plt.show()
它不显示笛卡尔轴。有没有办法添加它,也许通过在 x=0 和 y=0 处添加行?
解决方案
您可以将脊椎轴设置为自定义位置,例如原点:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-2,1,100)
y = x**2
fig, ax = plt.subplots(1, figsize=(6, 4))
ax.plot(x, y)
ax.spines['left'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')
ax.spines['top'].set_color('none')
ax.set(ylim=(-1, 4))
否则,您可以添加一条垂直线和一条水平线:
fig, ax = plt.subplots(1, figsize=(6, 4))
ax.plot(x, y)
ax.axhline(0, color='black')
ax.axvline(0, color='black')