2
此问题与@ bgbg的question about how to visualize only the upper or lower triangle of a symmetric matrix in matplotlib有关。用他的代码(在末尾所示),我们可以生成这样的数字:imshow的上/下三角周围的边框
现在我的问题:怎样才能画出一个暗边框仅此一套块的?我问,因为我想绘制两组相关数据,并将它们作为上下三角形相邻放置。然后,我们可以在每个三角形周围绘制一个黑色边框,分别代表两个三角形,并显示它们是不同的度量。所以,像这样的,但不能混淆:
怎么办呢?
#Figure 1
import numpy as NP
from matplotlib import pyplot as PLT
from matplotlib import cm as CM
A = NP.random.randint(10, 100, 100).reshape(10, 10)
mask = NP.tri(A.shape[0], k=-1)
A = NP.ma.array(A, mask=mask) # mask out the lower triangle
fig = PLT.figure()
ax1 = fig.add_subplot(111)
cmap = CM.get_cmap('jet', 10) # jet doesn't have white color
cmap.set_bad('w') # default value is 'k'
ax1.imshow(A, interpolation="nearest", cmap=cmap)
ax1.grid(True)
axis('off')
#Figure 2
A = NP.random.randint(10, 100, 100).reshape(10, 10)
mask = NP.tri(A.shape[0], k=-1)
mask = NP.zeros_like(A)
mask[NP.arange(10), NP.arange(10)] = 1
A = NP.ma.array(A, mask=mask) # mask out the lower triangle
fig = PLT.figure()
ax1 = fig.add_subplot(111)
cmap = CM.get_cmap('jet', 10) # jet doesn't have white color
cmap.set_bad('w') # default value is 'k'
ax1.imshow(A, interpolation="nearest", cmap=cmap)
title("Correlation Data 1")
ylabel("Correlation Data 2")
yticks([])
xticks([])
谢谢!有没有办法让相同的边框环绕三角形的其余部分? – jeffalstott