在matplotlib imshow plot上显示值

时间:2014-07-01 11:56:54

标签: python matplotlib

我对Pythons'相对较新。 matplotlib,但实际上我用它来显示一些数据。

例如,我有一些分数表示某些类之间的关系。为了在使用pyplot.imshow时可视化它们之间的关系,它可以很好地显示关系。但是,如果我可以想象产生该分数的值,那将是很好的。碰巧我无法做到这一点,但我模仿了我认为应该如何做到这一点。有没有人有想法?

Data visualization mock-up

非常感谢@ behzad.nouri在另一个question中的回答,我可以把代码放在一起做我需要的。所以为了将来参考(请记住,这可能不是最诡计多端的做事方式):

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import patheffects
from matplotlib import cm

a_size = 5
foo_o = np.random.random_integers(30, size=(a_size, a_size))

foo_m = np.zeros([a_size, a_size])

for i in xrange(a_size):
    for j in xrange(a_size):
            _sum = foo_o[i][i] + foo_o[j][j]
            comb = foo_o[i][j]
            foo_m[i][j] = float(comb)/float(_sum)

fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.imshow(foo_m, cmap=cm.jet, interpolation='None', origin='lower', aspect='auto')

for i in xrange(a_size):
    for j in xrange(a_size):
        ax.text(j, i, '{:.2f}'.format(foo_o[i][j]),
                size='medium', ha='center', va='center',
                path_effects=[patheffects.withSimplePatchShadow(shadow_rgbFace=(1, 1, 1))])
plt.show()

这样就产生了以下结果: enter image description here

0 个答案:

没有答案