我有 6 个列表,我想为所有可能的组合创建散点图。这意味着我想创建 n(n-1)/2 个组合,所以 15 个图。我已根据以下脚本正确完成此操作。
for i in d:
for j in d:
if(j>i):
plt.cla() # Clear axis
plt.clf() # Clear figure
correlation_coefficient = str(np.corrcoef(d[i], d[j])[0][1])
plt.scatter(d[i],d[j])
plt.xlabel(names[i])
plt.ylabel(names[j])
plt.title('Correlation Coefficient: '+correlation_coefficient)
plt.grid()
plt.savefig(names[i]+"_"+names[j]+".png")
我想使用子图将所有这些图保存在一个图中,其中第一行将具有组合 (0,1) (0,2) (0,3) (0,4) (0,5) 第二行 ( 1,2) (1,3) (1,4) (1,5) 第三排 (2,3) (2,4) (2,5) 等
所以最终的结果将是一个包含三角形子图的图形。
更新:
如果我使用子图(下面的代码),我能够以某种方式得到结果,但它不是最佳的,因为我创建了一个 6x6 帧,而你可以用 5x5 来做到这一点。
fig = plt.figure()
cnt = 0
# Create scatterplots for all pairs
for i in d:
for j in d:
if(i>=j):
cnt=cnt+1
if(j>i):
cnt += 1
fig.add_subplot(6,6,cnt) #top left
correlation_coefficient = str(np.corrcoef(d[i], d[j])[0][1])
plt.scatter(np.log(d[i]),np.log(d[j]))
fig.savefig('test.png')