стесни разликата между подплотовете в pyplot

Имам четири матрици на объркване, които да начертая в pyplot. По-долу е моят код и получената снимка:

confmatmap=cm.YlOrBr    
fig = plt.figure()

plt.clf()
ax = fig.add_subplot(221)
ax.set_aspect(1)
res = ax.imshow(np.array(norm_conf_1), cmap=confmatmap, interpolation='nearest')
plt.xticks(range(2), ['T', 'F']); plt.yticks(range(2), ['T', 'F'])

ax = fig.add_subplot(222)
ax.set_aspect(1)
res = ax.imshow(np.array(norm_conf_2), cmap=confmatmap, interpolation='nearest')
plt.xticks(range(2), ['','']);plt.yticks(range(2), ['','']);
ax = fig.add_subplot(223)
ax.set_aspect(1)
res = ax.imshow(np.array(norm_conf_3), cmap=confmatmap, interpolation='nearest')
plt.xticks(range(2), ['','']);plt.yticks(range(2), ['','']);
ax = fig.add_subplot(224)
ax.set_aspect(1)
res = ax.imshow(np.array(norm_conf_4![enter image description here][2]), cmap=confmatmap, interpolation='nearest')
plt.xticks(range(2), ['','']);plt.yticks(range(2), ['','']);


fig.subplots_adjust(left=0, bottom=0, right=1, top=1,wspace=0, hspace=0.1)

въведете описание на изображението тук

Но разликата между левите и десните подсюжети е твърде голяма за мен. Искам както вертикалните, така и хоризонталните пропуски да са с размер приблизително символ. Мога да стесня разликата между горните и долните подграфики, като задам hspace на много малка стойност, но wspace не работи. Предполагам, че това е възможно, защото подграфиците имат някаква празна част, която е бяла.

Как мога да стесня пропуските до която и да е зададена стойност тук?


person onemach    schedule 03.05.2014    source източник


Отговори (2)


Опитайте се да направите:

fig = plt.figure(figsize=(4, 4))

в началото и вашият код трябва да работи. Проблемът изглежда е в размера на фигурата, който е несъвместим със съдържанието й, което прави невъзможно да се спазват както wspace, така и hspace.

person Saullo G. P. Castro    schedule 03.05.2014

Вие сте на прав път с fig.subplots_adjust(left=0, bottom=0, right=1, top=1).

Като зададете ляво на различно от нула например, можете да преместите двата леви подграфика повече навътре, т.е. към двата подграфика вдясно. По този начин се намалява ширината между подплоговете.

Това ще създаде допълнително бяло пространство отляво на вашата фигура, тъй като общият размер не се променя. Когато запазвате изображението, можете да премахнете това, като включите опцията: bbox_inches = "tight"

Друго нещо, което можете да използвате е:

fig.tight_layout()

person The Dude    schedule 03.05.2014