python - seaborn pairplot 旁边的颜色条

标签 python matplotlib seaborn

from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
from pandas import DataFrame

# generate 2d classification dataset
X, y = make_blobs(n_samples=100, centers=3, n_features=2)
# scatter plot, dots colored by class value
df1 = DataFrame(dict(x=X[:,0], y=X[:,1], label=y))


norm = plt.Normalize(df1.x.min(), df1.x.max())
sm = plt.cm.ScalarMappable(cmap=sns.cubehelix_palette(df1['x'].max(), start=.5, rot=-.75,as_cmap=True), norm=norm)
sm.set_array([])

ax=sns.pairplot(df1,vars=['x','y'], 
            hue='label',
            palette=sns.cubehelix_palette(df1['x'].max(), start=.5, rot=-.75),
            diag_kind=None,plot_kws={"s": 50})

ax._legend.remove()

# ax.set_ylabel('WT04: Pairplot for features')
cbar=ax.fig.colorbar(sm)
m0=int(np.floor(df1.x.min()))            # colorbar min value
m4=int(np.ceil(df1.x.max()))             # colorbar max value
m1=int(1*(m4-m0)/4.0 + m0)               # colorbar mid value 1
m2=int(2*(m4-m0)/4.0 + m0)               # colorbar mid value 2
m3=int(3*(m4-m0)/4.0 + m0)               # colorbar mid value 3
cbar.set_ticks([m0,m1,m2,m3,m4])
cbar.set_ticklabels([m0,m1,m2,m3,m4])

ax.fig.suptitle('WT04: Pairplot for features',y=0.99)
plt.subplots_adjust(top=0.94)
plt.show()

plt.savefig('result.png')

生成这个图 enter image description here

但是,我希望颜色条位于配对图的右侧,而不是右下角。如何才能做到这一点?我的一些 pairplots 有其他维度,所以可扩展的东西会很好。

最佳答案

您可以尝试使用 plt 添加颜色条:

ax._legend.remove()

# remove this colorbar
# cbar=ax.fig.colorbar(sm)

m0=int(np.floor(df1.x.min()))            # colorbar min value
m4=int(np.ceil(df1.x.max()))             # colorbar max value
m1=int(1*(m4-m0)/4.0 + m0)               # colorbar mid value 1
m2=int(2*(m4-m0)/4.0 + m0)               # colorbar mid value 2
m3=int(3*(m4-m0)/4.0 + m0)               # colorbar mid value 3

ax.fig.suptitle('WT04: Pairplot for features',y=0.99)

# use this colorbar
cbar = plt.colorbar(sm, ax=ax.axes)

cbar.set_ticks([m0,m1,m2,m3,m4])
cbar.set_ticklabels([m0,m1,m2,m3,m4])

输出:

enter image description here

关于python - seaborn pairplot 旁边的颜色条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62070506/

相关文章:

python - 共享轴并删除 matplotlib 子图中未使用的

python - tsplot 不绘图(再次)

python - 遍历子目录中的文件并将输出放在其他子目录中

Python:生成包含反馈机制的模块图

python - 预测即将出现的单词的 POS 标签

python - 如何生成带有截断条形的类似条形图的图?

python - 使 plt.colorbar 扩展到 vmin/vmax 前后的步骤

python - Seaborn 箱线图沿 x 轴错误移动

python - 如何将第一帧与视频opencv python的其他帧进行比较

python - 如何评估 DataFrame 中包含的按行表达式(如 df.eval() 但动态)?