Python / Matplotlib – Как поместить текст в угол равного размера фигуры

Я хотел бы поместить текст в правый нижний угол равного размера фигуры. Я устанавливаю положение относительно фигуры с помощью ax.transAxes, но я должен определить значение относительной координаты вручную в зависимости от масштабов высоты каждого числа.

Что было бы хорошим способом узнать масштаб высоты осей и правильную позицию текста в скрипте?

ax = plt.subplot(2,1,1) ax.plot([1,2,3],[1,2,3]) ax.set_aspect('equal') ax.text(1,-0.15, 'text', transform=ax.transAxes, ha='right', fontsize=16) print ax.get_position().height ax = plt.subplot(2,1,2) ax.plot([10,20,30],[1,2,3]) ax.set_aspect('equal') ax.text(1,-0.15, 'text', transform=ax.transAxes, ha='right', fontsize=16) print ax.get_position().height 

введите описание изображения здесь

One Solution collect form web for “Python / Matplotlib – Как поместить текст в угол равного размера фигуры”

Используйте annotate .

На самом деле, я почти никогда не использую text . Даже когда я хочу размещать вещи в координатах данных, я обычно хочу компенсировать их некоторым фиксированным расстоянием в точках, что намного проще с annotate .

В качестве краткого примера:

 import matplotlib.pyplot as plt fig, axes = plt.subplots(nrows=2, subplot_kw=dict(aspect=1)) axes[0].plot(range(1, 4)) axes[1].plot(range(10, 40, 10), range(1, 4)) for ax in axes: ax.annotate('Test', xy=(1, 0), xycoords='axes fraction', fontsize=16, horizontalalignment='right', verticalalignment='bottom') plt.show() 

введите описание изображения здесь

Если вы хотите, чтобы он слегка смещен с угла, вы можете указать смещение через xytext kwarg (и textcoords чтобы контролировать, как интерпретируются значения xytext ). Я также использую аббревиатуры ha и va для horizontalalignment и verticalalignment здесь:

 import matplotlib.pyplot as plt fig, axes = plt.subplots(nrows=2, subplot_kw=dict(aspect=1)) axes[0].plot(range(1, 4)) axes[1].plot(range(10, 40, 10), range(1, 4)) for ax in axes: ax.annotate('Test', xy=(1, 0), xycoords='axes fraction', fontsize=16, xytext=(-5, 5), textcoords='offset points', ha='right', va='bottom') plt.show() 

введите описание изображения здесь

Если вы пытаетесь разместить его под осями, вы можете использовать смещение, чтобы поместить его на заданное расстояние ниже в точках:

 import matplotlib.pyplot as plt fig, axes = plt.subplots(nrows=2, subplot_kw=dict(aspect=1)) axes[0].plot(range(1, 4)) axes[1].plot(range(10, 40, 10), range(1, 4)) for ax in axes: ax.annotate('Test', xy=(1, 0), xycoords='axes fraction', fontsize=16, xytext=(0, -15), textcoords='offset points', ha='right', va='top') plt.show() 

введите описание изображения здесь

Также ознакомьтесь с руководством по аннотации Matplotlib для получения дополнительной информации.

  • Matplotlib colorbar перемещает вторую ось x
  • Как создать строчный график строк с помощью matplotlib?
  • python matplotlib заполнены ящиками
  • Как визуализировать матрицу соединений с Matplotlib?
  • Предпочтительный способ установки свойств matplotlib figure / axes
  • Как создать титульную страницу для PDF-документа, созданного с использованием matplotlib
  • Как создать график плотности в matplotlib?
  • Проблемы после обновления ipython (% matplotlib nbagg)
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.