Python matplotlib — рисует прямоугольники с небольшими внутренними отступами (в пикселях), которые автоматически настраиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python matplotlib — рисует прямоугольники с небольшими внутренними отступами (в пикселях), которые автоматически настраи

Сообщение Anonymous »

Мне нужно нарисовать прямоугольники с небольшим ВНУТРЕННИМ отступом (например, 2 пикселя), чтобы они не соприкасались с непосредственно соседними прямоугольниками. Я бы хотел, чтобы заполнение оставалось постоянным после любого изменения размера (масштабирования).
Пример ниже иллюстрирует то, что я пробовал до сих пор, а именно использовать ax.transData.inverted()< /code> для преобразования пикселей в блоки данных, но это, похоже, не дает последовательных результатов (т. е. заполнение меняется при разных уровнях масштабирования).
import matplotlib.pyplot as plt
import matplotlib.patches as patches

class Rectangle(patches.Rectangle):
def __init__(self, x, y, w, h, pad, **kwargs) -> None:
self._x, self._y, self._w, self._h, self._pad = x, y, w, h, pad

super().__init__((self._x, self._y), self._w, self._h, **kwargs)

def add_to_axes(self, ax) -> None:
ax.add_patch(self)
self.figure.canvas.mpl_connect("draw_event", self._on_draw)
self._ax = ax
# Keep track of current axes limits
self._xlim = ax.get_xlim()
self._ylim = ax.get_ylim()
self._update()

def _on_draw(self, event) -> None:
# Check if axes limits have changed
if self._xlim == self._ax.get_xlim() and self._ylim == self._ax.get_ylim():
return
self._update()

def _update(self) -> None:
# Update the padding
self._xlim, self._ylim = self._ax.get_xlim(), self._ax.get_ylim()
print("yes - i am a resize event")

# Calculate pixel-based padding
inv = self._ax.transData.inverted()
dx, dy = inv.transform((self._pad, self._pad)) - inv.transform((0, 0)) #

Подробнее здесь: https://stackoverflow.com/questions/787 ... ls-that-ad
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Matplotlib.patches.Rectangle создает прямоугольники с неодинаковым размером ширины линии.
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Проблема с отступами в Python
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Проблема с отступами Yaml от ruamel.yaml для автоматизации, выполненной на Python
    Anonymous » » в форуме Python
    0 Ответы
    46 Просмотры
    Последнее сообщение Anonymous
  • Проблема с отступами блоков изолированного кода Python Markdown2
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Python Matplotlib рисует изображение без фона поверх другого изображения на рисунке.
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»