python - 是否有一个Python函数(最好是seaborn)可以帮助我用散点图上的一条线连接两组点?

标签 python pandas numpy matplotlib seaborn

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/

相关文章:

python - 使用 pandas 将字符串值重新映射到新标签

python - 如何在 clf.predict_proba(X_test) 中获得更多小数?

python - 从字节读取视频

python - 查找数组中整数游程的索引

Python2.7 : How to create bar graph using index and column information?

python - 使用 HTML 调用 python 函数

python - numpy中的tensordot和einsum有什么区别?

python - 您可以使用 Python 开放对 EC2 实例上的 UDP 端口的访问吗?

python - Pandas DataFrame Groupby 如何将组作为列表获取并获得特定列的平均值

python - Pandas如何添加计数器以在两个数据帧列之间匹配行