Seaborn FacetGrid PointPlot Добавить 1 линию сетки
Учитывая следующее:
import seaborn as sns
attend = sns.load_dataset("attention")
sns.set_style("whitegrid", {'axes.grid' : False,'axes.edgecolor':'none'})
g = sns.FacetGrid(attend, col="subject", col_wrap=5,
size=1.5, ylim=(0, 10))
ax = g.map(sns.pointplot, "solutions", "score", scale=.7)
Как видите, я удалил все линии сетки. Теперь я хотел бы добавить только одну горизонтальную линию сетки: при значении 5 на оси Y для каждого графика. Возможно ли это сделать? Я посмотрел здесь параметры словаря set_style, но не нашел ничего полезного.
Заранее спасибо!
1 ответ
Самый простой способ получить линию сетки в качестве помощника на графике - просто нарисовать линию на каждом графике.
for a in g.axes:
a.axhline(5, alpha=0.5, color='grey')
В результате это в основном одна строка кода, и сюжет будет иметь нужную вам функцию. В результате вы должны вручную указать, куда идет каждая строка. (Я предполагаю, что вы хотите что-то более сложное в производственном коде). Что-то немного лучше будет
for a in g.axes:
a.axhline(a.get_yticks()[1], alpha=0.5, color='grey')
что бы взять один тик и нарисовать линию для него.
Вы могли бы, вероятно, сделать что-то с человеком tick
объекты, чтобы дать аналогичный эффект --- они могут быть доступны с a.yaxis.get_major_ticks()
--- но я не смог использовать ни один из их методов для какого-либо эффекта.