Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python imshow的上/下三角形周围的边框_Python_Matplotlib - Fatal编程技术网

Python imshow的上/下三角形周围的边框

Python imshow的上/下三角形周围的边框,python,matplotlib,Python,Matplotlib,这个问题与@BG的有关。使用他的代码(如末尾所示),我们可以生成如下图: 现在我的问题是:我们如何才能在这组区块周围画出一条黑暗的边界?我问,因为我想绘制两组相关数据,并将它们作为上下三角形彼此相邻。然后,我们可以在每个三角形周围单独绘制一个黑色边框,将两个三角形分开,并显示它们是不同的度量。所以,像这样,但不要混淆: 怎么做 #Figure 1 import numpy as NP from matplotlib import pyplot as PLT from matplotlib i

这个问题与@BG的有关。使用他的代码(如末尾所示),我们可以生成如下图:

现在我的问题是:我们如何才能在这组区块周围画出一条黑暗的边界?我问,因为我想绘制两组相关数据,并将它们作为上下三角形彼此相邻。然后,我们可以在每个三角形周围单独绘制一个黑色边框,将两个三角形分开,并显示它们是不同的度量。所以,像这样,但不要混淆:

怎么做

#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([])

您可以使用
面片绘制边界。多边形

import numpy as NP
from matplotlib import pyplot as PLT
import matplotlib.patches as patches

N = 10
A = NP.random.randint(10, 100, N * N).reshape(N, N)
mask = NP.tri(A.shape[0], k=-1)
mask = NP.zeros_like(A)
mask[NP.arange(N), NP.arange(N)] = 1
A = NP.ma.array(A, mask=mask)  # mask out the lower triangle
fig, ax = PLT.subplots()

cmap = PLT.get_cmap('jet', 10)  # jet doesn't have white color
cmap.set_bad('w')  # default value is 'k'
ax.imshow(A, interpolation="nearest", cmap=cmap, extent=[0, N, 0, N])

line = ([(0, N - 1), (0, 0), (N - 1, 0)] +
        [(N - 1 - i - j, i + 1) for i in range(N - 1) for j in (0, 1)])
lines = [line, [(N - x, N - y) for x, y in line]]
for line in lines:
    path = patches.Polygon(line, facecolor='none', edgecolor='black',
                           linewidth=5, closed=True, joinstyle='round')
    ax.add_patch(path)
ax.set_xlabel("Correlation Data 1")
ax.xaxis.set_label_position('top')
ax.set_ylabel("Correlation Data 2")
ax.set_yticks([])
ax.set_xticks([])
margin = 0.09
ax.set_xlim(-margin, N + margin)
ax.set_ylim(-margin, N + margin)
ax.set_frame_on(False)
PLT.show()

谢谢!有没有办法让相同的边界环绕三角形的其余部分?