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

时间:2019-02-12 22:22:07

标签: python matplotlib scatter-plot

我在将散点图中的两组点彼此连接时遇到麻烦,因此一条线(在此示例中,使用虚拟数据)将所有“前”点与相应的“后”点相连。 'marker ='o-'参数不适用于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()

1 个答案:

答案 0 :(得分:0)

虽然@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()

enter image description here