Index X1 Y1 X2 Y2
0 3 2 7 8
1 -5 5 4 -6
… … … … …
n 6 -3 5 -1
有没有办法为索引中的每一行创建一个带有连接 (x1, y1)
到 (x2, y2)
的散点图? (即 (3,2)
需要连接到 (7,8),(-5, 5)
需要连接到 (4,-6)
每行依此类推。我使用的数据集有数百行,我需要用一条线连接每对点。
我最喜欢的图书馆是 Seaborn。
预期结果应包括一个散点图,其中每对点都用一条线连接。由于散点图上将有数百条线,因此我需要使用减少的线宽和透明度来绘制它。
最佳答案
您可以使用双重熔化,并与 sns.lineplot
结合使用:
import pandas as pd
import seaborn as sns
# generate identification column
df['id'] = df.index
# combine all X values in a column. Same for Y values
df_x = df.melt(id_vars='id', value_vars=['X1', 'X2']).rename(columns={'value':'X'})[['id', 'X']]
df_y = df.melt(id_vars='id', value_vars=['Y1', 'Y2']).rename(columns={'value':'Y'})[['Y']]
# combine X-values, Y-values, and identification column
temp = pd.concat([df_x, df_y], axis=1)
# use lineplot, with different lines for each id:
sns.lineplot(x='X', y='Y', hue='id', data=temp)
关于python - 是否有一个Python函数(最好是seaborn)可以帮助我用散点图上的一条线连接两组点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56093079/