爲了使該表變成類似於您鏈接到一個曲線圖,還是先使用值的數組與對應於「實際值」一軸,而另一個爲「估計值」(因此包括所有零個值是不是在你的表):
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