当我使用Matplotlib绘制数据时,默认情况下,坐标轴始终以框的形式绘制在图形周围。假设我正在绘制坐标轴限制为
-2 < x < 2
和-2 < y < 2
的数据,但我希望在这个图形区域内通过原点绘制坐标轴线,最好沿着这些坐标轴线放置刻度和刻度标签 - 而不是沿着外部边框。-2 < x < 2
和-2 < y < 2
的数据,但我希望在这个图形区域内通过原点绘制坐标轴线,最好沿着这些坐标轴线放置刻度和刻度标签 - 而不是沿着外部边框。这在脊柱示例(旧链接)/ 脊柱位置演示(新链接)中有详细说明。
您将关闭右侧和顶部的脊柱(例如spines ['right'] .set_color('none')
),并将左侧和底部的脊柱移动到零位置(例如spines['left'].set_position('zero')
)。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
x = np.linspace(-np.pi, np.pi, 100)
y = 2*np.sin(x)
ax = fig.add_subplot(111)
ax.set_title('zeroed spines')
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')
# remove the ticks from the top and right edges
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
我至少能给出一个半完整的答案。 是的,你可以轻松地绘制坐标轴线。它就像
plt.axvline(0)
plt.axhline(0)
原始的坐标轴将保留,但可以使用plt.axis('off')
关闭它。这也不会给你任何刻度标记。matplotlib.pyplot
模块而是查看“真正的”API,则可以使用matplotlib实现许多事情。绘制坐标轴是我自己几次想做但从未完全解决的事情。 - Hannes Ovrén