Matplotlib python 用每对 (x,y) 值的线连接两个散点图?

Ann*_*nna 5 python matplotlib scatter-plot

我在将散点图中的两组点相互连接时遇到问题,使得一条线(在本例中使用虚拟数据)将所有“前”点与相应的“后”点连接起来。'marker = 'o-' 参数不适用于 plt. 分散,但适用于 plt。阴谋。建议如何连接相应的值?谢谢并希望这个问题有意义!

import matplotlib.pyplot as plt
import numpy as np
x1 = ["pre"] * 4
x2 = ["post"] * 4
y1 = [0.1, 0.15, 0.13, 0.25]
y2 = [0.85, 0.76, 0.8, 0.9]
plt.scatter(x1, y1, color='y')
plt.scatter(x2, y2, color='g')
plt.show()
Run Code Online (Sandbox Code Playgroud)

She*_*ore 2

虽然 @ImportanceOfBeingErnest 已经为您提供了看似最简单的解决方案,但您可能有兴趣了解替代解决方案来获得您想要的东西。您可以使用LineCollection

from matplotlib.collections import LineCollection

fig, ax = plt.subplots()

# Rest of your code

lines = [[x, list(zip([1]*4, y2))[i]] for i, x in enumerate(zip([0]*4, y1))]
print (lines)
# [[(0, 0.1), (1, 0.85)], [(0, 0.15), (1, 0.76)], [(0, 0.13), (1, 0.8)], [(0, 0.25), (1, 0.9)]]

lc = LineCollection(lines)
ax.add_collection(lc)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述