如何制作一组全对一组的散点图 - 针对一个目标列的列列表

Har*_*mer 5 matplotlib pandas

我想针对同一个目标变量绘制一堆变量。所以是一种散点矩阵,但使用 list_of_df_columns-vs-one_df_column 而不是 all-vs-all。

我已经在一个循环中一个一个地添加子图,但似乎必须有更好的方法。有什么方法可以使用 scatter_matrix 函数来做到这一点吗?

我想针对单个结果绘制数十个变量,我真的希望结果既美观又紧凑,以便它们可以作为单个图形呈现。

小智 7

您可以尝试使用seabornpairplot,并传递特定的x和y变量。

import seaborn as sns
sns.pairplot(df, y_vars="A", x_vars=df.columns.values)
Run Code Online (Sandbox Code Playgroud)


Alv*_*tes 1

plot如果您将索引设置为固定列,也许裸露会有所帮助:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'A':[1,2,3,4,5,6],'B':[2,0,3,6,1,3],'C':[7,3,2,1,5,0],'D':[1,3,0,2,2,6]})

col = 'A'
df2 = df.drop(col,axis=1)
df2.index = df[col]
df2.plot(subplots=True, style='.')
plt.legend(loc='best')
plt.show()
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。