Есть ли способ рисовать поле с надписью в matplotlib - PullRequest
29 голосов
/ 25 апреля 2011

Есть ли функция для рисования поля подписи под рисунком / графиком с помощью matplotlib? Я искал в Google и не нашел такой функции.

Captionbox example

было бы замечательно что-то вроде того, что показано на картинке.

Ответы [ 2 ]

34 голосов
/ 25 апреля 2011

Используйте pyplot.text. Вот пример кода:

from matplotlib import pyplot as plt
import numpy as np

x = np.arange(0,3,.25)
y = np.sin(x)
txt = '''
    Lorem ipsum dolor sit amet, consectetur adipisicing elit,
    sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
    nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
    reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
    culpa qui officia deserunt mollit anim id est laborum.'''

fig = plt.figure()
ax1 = fig.add_axes((.1,.4,.8,.5))
ax1.bar(x,y,.2)
fig.text(.1,.1,txt)
plt.show()

Это производит это: enter image description here

Если вы хотите автоматическую переноску слов, посмотрите на этот пост .

Я не уверен, что смогу помочь вам сделать это полностью оправданным.

1 голос
/ 25 апреля 2011

Вы можете использовать функцию legend (pylab.legend).Если вы хотите, чтобы он находился вне осей, вы можете передать ему определенное местоположение (loc аргумент ключевого слова).

Редактировать: Функция легенды принимает аргумент title, который можетпомочь получить то, что вы хотите.Однако для подписи без какой-либо легенды ответ Пола более подходит.

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