Токенизация арабских слов с использованием NLTK

Как указано в других ответах, идея, как правило, заключается в определении осей для цветной панели, в которой они находятся. Существуют различные способы сделать это; который еще не упоминался, заключался бы в прямом определении осей colorbar при создании подзадачи с помощью plt.subplots(). Преимущество состоит в том, что положение оси не нужно устанавливать вручную, и во всех случаях с автоматическим аспектом цветная панель будет точно такой же высоты, как и подзаголовки. Даже во многих случаях, когда используются изображения, результат будет удовлетворительным, как показано ниже.

При использовании plt.subplots() использование аргумента gridspec_kw позволяет сделать оси цветной панели намного меньшими, чем другие оси.

fig, (ax, ax2, cax) = plt.subplots(ncols=3,figsize=(5.5,3), 
                  gridspec_kw={"width_ratios":[1,1, 0.05]})

Пример:

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)

fig, (ax, ax2, cax) = plt.subplots(ncols=3,figsize=(5.5,3), 
                  gridspec_kw={"width_ratios":[1,1, 0.05]})
fig.subplots_adjust(wspace=0.3)
im  = ax.imshow(np.random.rand(11,8), vmin=0, vmax=1)
im2 = ax2.imshow(np.random.rand(11,8), vmin=0, vmax=1)
ax.set_ylabel("y label")

fig.colorbar(im, cax=cax)

plt.show()

Это хорошо работает, если аспект сюжета автомасштабирован или изображения сокращаются из-за их аспекта в направлении ширины (как указано выше). Если, однако, изображения более широкие, но высокие, результат будет выглядеть следующим образом, что может быть нежелательным.

Решение по исправлению цветной панели высота до высоты подзаголовка должна была бы использовать mpl_toolkits.axes_grid1.inset_locator.InsetPosition для установки осей цветной панели относительно осей поднабора изображения.

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)
from mpl_toolkits.axes_grid1.inset_locator import InsetPosition

fig, (ax, ax2, cax) = plt.subplots(ncols=3,figsize=(7,3), 
                  gridspec_kw={"width_ratios":[1,1, 0.05]})
fig.subplots_adjust(wspace=0.3)
im  = ax.imshow(np.random.rand(11,16), vmin=0, vmax=1)
im2 = ax2.imshow(np.random.rand(11,16), vmin=0, vmax=1)
ax.set_ylabel("y label")

ip = InsetPosition(ax2, [1.05,0,0.05,1]) 
cax.set_axes_locator(ip)

fig.colorbar(im, cax=cax, ax=[ax,ax2])

plt.show()

20
задан Garrett Hyde 23 October 2012 в 19:30
поделиться