为了使该表变成类似于您链接到一个曲线图,还是先使用值的数组与对应于“实际值”一轴,而另一个为“估计值”(因此包括所有零个值是不是在你的表):
import matplotlib.pyplot as plt
import numpy as np
label = ['A', 'F', 'J', 'P', 'T', 'Z']
nlabel = 6
values = np.zeros([nlabel, nlabel])
values[0, 0] = 10; values[0, 2] = 10; values[0, 3] = 10
values[1, 1] = 40; values[2, 1] = 10; values[3, 3] = 10
values[3, 4] = 10; values[4, 5] = 30; values[4, 3] = 20
values[5, 4] = 10
print " ", label
for i in np.arange(nlabel): print label[i], values[i]
印刷只是为了确保它看起来像你的桌子上面:
['A', 'F', 'J', 'P', 'T', 'Z']
A [ 10. 0. 10. 10. 0. 0.]
F [ 0. 40. 0. 0. 0. 0.]
J [ 0. 10. 0. 0. 0. 0.]
P [ 0. 0. 0. 10. 10. 0.]
T [ 0. 0. 0. 20. 0. 30.]
Z [ 0. 0. 0. 0. 10. 0.]
然后我会使用这些值来缩放大小matplotlib.pyplot.scatter中的标记如下。
fig, ax = plt.subplots()
for i in np.arange(nlabel):
plt.scatter(np.arange(nlabel), i * np.ones_like(values[i]),
s=values[i] * 42, marker='s')
plt.axes([0, nlabel+1, 0, nlabel+1])
ticklabel = [item.get_text() for item in ax.get_xticklabels()]
ticklabel[1:1+nlabel] = label
ax.set_xticklabels(ticklabel)
ax.set_yticklabels(ticklabel)
ax.set_xlabel('Estimated')
ax.set_ylabel('Actual')
plt.show()
这应该给你非常相似,你链接到一个阴谋。我没有做趋势线或方格内的数字,但Google/StackOverflow应该能够为您提供解决方案。
如果你问如何*决定可视化应该是*什么样的,是不是真的就主题为这个网站。一旦你决定了你想要的样子,这个网站将会问如何实现一个特定的可视化。您可以尝试[交叉验证](http://stats.stackexchange.com/)。这就是说,一种可能性是绘制“混淆矩阵”,用行和列的类别的网格和按照一定的真正范畴了多少次分类为某些类别估计阴影每个单元的视觉表示。 – BrenBarn
@BrenBarn:非常感谢您提供'交叉验证'。 – Tarun