首页 > 解决方案 > 如何在 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 处添加行?

标签: pythonmatplotlibplot

解决方案


您可以将脊椎轴设置为自定义位置,例如原点:

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')

在此处输入图像描述


推荐阅读