Возможно, это помогает кому-то, кто сталкивается с вопросом: Все условные рендеринги в действии Это статья обо всех различных вариантах условного рендеринга в React.
Выводы о том, когда использовать, какой условный рендеринг:
** if-else
** тернарный оператор
** logical & amp; & amp; & amp; оператор
** случай переключения
** перечисления
** многоуровневых / вложенных условных визуализаций
** HOC
** внешних шаблонных компонентах
Типичным способом изменения местоположения легенды в matplotlib является использование аргументов loc
и bbox_to_anchor
.
В Seaborn relplot
возвращается объект FacetGrid. Для получения объекта легенды мы можем использовать _legend
. Затем мы можем установить loc
и bbox_to_anchor
:
g = sns.relplot(...)
leg = g._legend
leg.set_bbox_to_anchor([0.5, 0.5]) # coordinates of lower left of bounding box
leg._loc = 2 # if required you can set the loc
Чтобы понять аргументы bbox_to_anchor
, см. Что означает 4-элементный аргумент кортежа для 'bbox_to_anchor' в matplotlib?
То же самое можно применить к заголовку. Аргумент matplotlib - это suptitle
. Но нам нужен объект фигуры. Таким образом, мы можем использовать
g.fig.suptitle("My Title")
Собрать все это вместе:
import seaborn as sns
dots = sns.load_dataset("dots")
# Plot the lines on two facets
g = sns.relplot(x="time", y="firing_rate",
hue="coherence", size="choice", col="align",
size_order=["T1", "T2"],
height=5, aspect=.75, facet_kws=dict(sharex=False),
kind="line", legend="full", data=dots)
g.fig.suptitle("My Title")
leg = g._legend
leg.set_bbox_to_anchor([1,0.7]) # change the values here to move the legend box
# I am not using loc in this example
[1123] Обновить [ 1126]
Вы можете изменить положение заголовка, указав координаты x и y (координаты рисунка), чтобы он не перекрывал заголовки подзаговоров
g.fig.suptitle("My Title", x=0.4, y=0.98)
Хотя я бы, наверное, слегка сдвиньте субплоты вниз и оставьте название рисунка там, где оно используется:
plt.subplots_adjust(top=0.85)