Я работаю над фигурой, где я пытаюсь нарисовать круг поверх комбинации цветов и контура. Круг продолжает рисоваться под контурами, а не сверху (см. Рисунок ниже). Я пробовал переупорядочивать, как я называю imshow, контур и Circle, чтобы посмотреть, могу ли я показать круг, сверху, но мне не повезло. Есть ли способ заставить Круг быть на самом верхнем уровне фигуры? Спасибо за вашу помощь!Рисование кругов на верхнем уровне рисунка
ответ
Вы можете установить zorder
свойство объекта участка, чтобы заставить его быть на вершине других участков в пределах одной и той же axes
. Высшее значение zorder
будет отображаться поверх нижнего значения zorder
.
plt.plot([1, 2], [1, 2], zorder=100)
По умолчанию патчи имеют zorder
из 1, 2D объекты строки имеют zorder
из 2 и текст имеет zorder
из 3.
Используйте zorder
kwarg. Это контролирует, какие элементы идут друг на друга. Итак, в этом случае вы хотите увеличить zorder
круга. Вам может потребоваться поэкспериментировать, чтобы найти zorder
, который даст вам результат, который вам нужен, но правило в том, что выше zorder
объектов появляются поверх нижних zorder
объектов.
Его трудно точно знать, без какого-либо кода, но предполагает, что вы уже использовали pcolormesh
, contour
и Circle
патч, этот пример показывает эффект не устанавливая zorder
(белый круг), и установка zorder=10
(красный круг).
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
# Fake data
x = np.arange(100)
y = np.arange(100)
X, Y = np.meshgrid(x, y)
z = X**0.5 * Y**0.5
fig, ax = plt.subplots(1)
ax.set_aspect('equal')
ax.pcolormesh(X, Y, z, cmap='viridis')
ax.contour(X, Y, z, colors='k', linewidths=3)
circ1 = Circle((65, 65), 30, facecolor='None', edgecolor='w', lw=5)
circ2 = Circle((35, 35), 30, facecolor='None', edgecolor='r', lw=5, zorder=10)
ax.add_patch(circ1)
ax.add_patch(circ2)
plt.show()
Обратите внимание, что белый круг лежит под черными контурными линиями, но за счет увеличения zorder
до 10, красный круг лежит поверх контурных линий.
- 1. Рисование случайных кругов
- 2. Рисование кругов в JFrame
- 3. Рисование сетки кругов
- 4. Рисование кругов в 3D
- 5. iOS Рисование кругов
- 6. Рисование кругов в Java
- 7. Рисование нескольких кругов Android
- 8. метод экземпляра на верхнем уровне
- 9. Проверка заголовков на верхнем уровне
- 10. Запуск активности на верхнем уровне
- 11. Обработка исключений на верхнем уровне
- 12. Рисование кругов на сетке 2D-массива (JAVA)
- 13. Рисование гладких кругов с использованием Core Graphics
- 14. Рисование кругов на торе в matlab
- 15. HTML canvas: рисование выделенных кругов
- 16. Данные на верхнем уровне введите на уровне приложения
- 17. Рисование конкретных кругов с Qt
- 18. Рисование кругов с использованием CGContext
- 19. Обнаружение рисунка кругов с использованием opencv
- 20. QTreeWidget - отключить падение на верхнем уровне
- 21. Модернизация, изменение объекта json на верхнем уровне?
- 22. Получить вызов ошибок на верхнем уровне?
- 23. cElementTree.ParseError: несколько элементов на верхнем уровне
- 24. Ошибка, поднятая на верхнем уровне: Fluent.EntityError.noDatabase
- 25. вызова метода на верхнем уровне реагировать компонент
- 26. Элементы субнома XML/XSLT на верхнем уровне
- 27. Дать ключ на верхнем уровне с QSettings
- 28. Git только чеки на верхнем уровне
- 29. Импорт javascript на верхнем уровне - Redux
- 30. Использование dir() на верхнем уровне в классе
мы не можем прочитать в вашем уме - показать код. – furas
в основном для рисования двух элементов в одном месте вам нужно использовать ту же фигуру или оси (я не помню) – furas