对于一列数据帧,我在sns.pairlot中使用渐变颜色,这样我就可以看到哪些数据点相互连接了
问题描述
我可以很容易地用以下命令生成海运配对图:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
f, axes = plt.subplots(1, 1)
np.random.seed(1)
a = np.arange(0, 10, 0.1)
np.random.rand()
def myFunc(x):
myReturn = x + 1*np.random.random(x.shape[0])
return myReturn
b = myFunc(a)
c = a * np.sin(a)
df = pd.DataFrame({'a': a, 'b': b, 'c': c})
sns.pairplot(df, corner=True)
plt.show()
我希望更轻松地查看我的数据之间的相互依赖关系。
为此,我希望DataFrame的一列具有渐变颜色(以便该列的低位数值为黄色,高位数值为蓝色)。
根据a
的数据点,我的绘图的所有非对角线子图都应该显示这些颜色,请参见下面的草图。
这对[a,b]和[a,c]绘图的好处是有限的,但是对于[b,c]绘图,如果数据变得更加复杂,我希望得到更多的见解。
此操作的语法如何?
解决方案
我认为这里更简单的做法是将数据帧索引作为色调变量传递。由于您不想(天真地)应用于直方图,请将其直接传递给非对角线图:
sns.pairplot(
df,
corner=True,
diag_kws=dict(color=".6"),
plot_kws=dict(
hue=df.index,
palette="blend:gold,dodgerblue",
),
)
相关文章