Pandas scatter_matrix 模拟函数对(lower.panel, upper.panel)

Pandas scatter_matrix analog function to pairs(lower.panel, upper.panel)

我需要在 Python 中创建一个散点矩阵。我尝试为此使用 scatter_matrix,但我只想保留对角线上方的散点图。

我才刚刚起步(没走多远),当列有名称(不是默认数字)时我遇到了麻烦。

这是我的代码:

import itertools
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

data=pd.DataFrame(np.random.randint(0,100,size=(10, 5)), columns=list('ABCDE')) #THE PROBLEM IS HERE - I WILL HAVE COLUMNS WITH NAMES

d = data.shape[1]

fig, axes = plt.subplots(nrows=d, ncols=d, sharex=True, sharey=True)
for i in range(d):
    for j in range(d):
            ax = axes[i,j]
            if i == j:
                ax.text(0.5, 0.5, "Diagonal", transform=ax.transAxes,
                        horizontalalignment='center', verticalalignment='center',
                        fontsize=16)
            else:
                ax.scatter(data[j], data[i], s=10)

select从数据框中提取列时遇到问题。您可以根据整数位置使用 iloc 到 select 列。将最后一行更改为:

ax.scatter(data.iloc[:,j], data.iloc[:,i], s=10)

给出: