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)
给出:
我需要在 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)
给出: