这个问题有点不清楚. 要使x轴为y = 0
,您可以设置ax.set_ylim(ymin=0)
.要使点可见而不被子图的边界剪裁,您可以使用ax.scatter(..., clip_on=False)
(许多其他绘图功能也接受clip_on=False
).顺便说一句,plt.plot()
只是画了一条白线,不是很有用.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, +3, 100)
y = np.exp(-x ** 2) * (2 + np.sin(2 * x) + np.sin(5 * x))
fig, ax = plt.subplots(figsize=(8, 4))
ax.plot(x, y, linestyle='-', linewidth=2.0, color="black")
ax.scatter(x=0.90, y=0, color="blue", clip_on=False)
ax.set_ylim(ymin=0)
plt.show()
或者,如果您只是想将点放在图的下边界,则可以使用x-axis transform(不更改ylim).
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, +3, 100)
y = np.exp(-x ** 2) * (2 + np.sin(2 * x) + np.sin(5 * x))
fig, ax = plt.subplots(figsize=(8, 4))
ax.plot(x, y, linestyle='-', linewidth=2.0, color="black")
ax.scatter(x=0.90, y=0, color="blue", clip_on=False, transform=ax.get_xaxis_transform())
plt.show()