如何在实线上方绘制散点图

How to plot scatterplot on top of solid line

我有两对 x 和 y 值,一个绘制为线图(蓝色),另一个绘制为散点图(红色)。这些点重叠,蓝色实线绘制在红点之上,导致只有红点的非重叠部分可见。我希望这是相反的方式:我希望红点都在蓝线的顶部,这样红点就完全可见,蓝线被遮挡在重叠点。关于如何执行此操作的任何建议?

import numpy as np
import matplotlib.pyplot as plt


x1 = np.linspace(0,10,20)
x2 = np.linspace(0,10,500)

y1 = np.sin(x1)
y2 = np.sin(x2)

plt.plot(x2,y2, color = 'b')
plt.scatter(x1,y1,marker = 'o', s = 6, color = 'r')

你可以使用 zorder。

import numpy as np
import matplotlib.pyplot as plt


x1 = np.linspace(0,10,20)
x2 = np.linspace(0,10,500)

y1 = np.sin(x1)
y2 = np.sin(x2)

plt.plot(x2,y2, color = 'b', zorder=0)
plt.scatter(x1,y1,marker = 'o', s = 6, color = 'r', zorder=1)

plt.show()

根据您的数据,您可以选择将 markevery 传递给 plt.plot

plt.plot(x2,y2, color = 'b', marker='o', markerfacecolor='r', markevery=25)

输出: