Изменение положения значений и меток оси в Python - PullRequest
0 голосов
/ 02 сентября 2018

У меня есть несколько вопросов относительно форматирования в matplotlib. У меня есть матрица, и я строю ее, используя plt.matshow (). Я изо всех сил пытаюсь заставить это выглядеть хорошим. Мой код выглядит следующим образом:

norm_conf_mx = 
norm_conf_mx =  np.array([[5728,    3,   24,   10,   11,   51,   44,    8,   40,    4],
                       [   1, 6484,   42,   27,    6,   51,    6,   10,  105,   10],
                       [  52,   34, 5337,  108,   79,   23,   91,   54,  164,   16],
                       [  47,   40,  137, 5335,    2,  243,   37,   62,  139,   89],
                       [  19,   25,   36,    8, 5385,   12,   54,   32,   81,  190],
                       [  73,   35,   33,  183,   78, 4631,  102,   27,  173,   86],
                       [  37,   23,   52,    2,   47,   93, 5615,    3,   45,    1],
                       [  26,   20,   70,   30,   47,   10,    8, 5820,   17,  217],
                       [  49,  146,   71,  155,   18,  165,   56,   25, 5027,  139],
                       [  43,   33,   25,   94,  168,   34,    3,  204,   89, 5256]])



nums = np.array([0,1,2,3,4,5,6,7,8,9])
my_ticks = [0,1,2,3,4,5,6,7,8,9]

plt.figure(figsize=(10,10))
plt.matshow(norm_conf_mx,cmap="gray",fignum=1)
plt.ylabel('Actual Class')
plt.xlabel('Predicted Class') 
plt.xticks(nums, my_ticks)
plt.yticks(nums, my_ticks)
plt.show()

Это дает диаграмму:

Участок

Почему значения оси x (какова терминология для чисел, помеченных на оси?) Вверху?

Как мне переместить их на дно?

Как я могу разместить ярлык "Предсказанный класс" наверху?

Есть ли лучший способ установить значения меток на осях? например без определения np.array и тиков?

Большое спасибо!

1 Ответ

0 голосов
/ 02 сентября 2018

Из документа plt.matshow

Сверху расположены метки для xaxis.

Как и ImportanceOfBeingErnest , вы можете использовать plt.gca().xaxis.set_label_position('top') для перемещения метки x.

plt.figure(figsize=(10,10))
plt.matshow(norm_conf_mx,cmap="gray",fignum=1)
plt.ylabel('Actual Class')
plt.xlabel('Predicted Class')
plt.xticks(nums, my_ticks)
plt.yticks(nums, my_ticks)
plt.gca().xaxis.set_label_position('top')
plt.show()

enter image description here

Вы можете использовать plt.imshow, чтобы показать значения оси x в нижней части экрана

plt.figure(figsize=(10,10))
plt.imshow(norm_conf_mx,cmap="gray",)
plt.ylabel('Actual Class')
plt.xlabel('Predicted Class') 
plt.xticks(nums, my_ticks)
plt.yticks(nums, my_ticks)
plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...