如何在实线上方绘制散点图
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)
输出:
我有两对 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)
输出: