Вы можете эффективно изменить свойства всех подзаговоров, используя PairGrid.set()
. Однако, если вы хотите более или менее индивидуально изменить каждый подзаговор, у вас не останется иного выбора, кроме как l oop на каждом из участков и изменить их свойства в соответствии с вашими потребностями.
Вот что я бы сделал в вашем case:
order = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
lims = [(4, 8.5), (1.5, 5), (0, 8), (-0.5, 3)]
tick_inc = [0.5, 0.5, 1, 0.5]
sns.set()
iris = sns.load_dataset("iris")
g = sns.PairGrid(iris, hue="species", vars=order)
g = g.map_diag(plt.hist)
g = g.map_offdiag(plt.scatter)
g = g.add_legend()
loc = matplotlib.ticker.MultipleLocator(0.5)
for ax,(ylims, xlims),(yticks, xticks) in zip(g.axes.flat,
itertools.product(lims, lims),
itertools.product(tick_inc, tick_inc)
):
ax.set_xlim(xlims)
ax.set_ylim(ylims)
ax.xaxis.set_major_locator(matplotlib.ticker.MultipleLocator(xticks))
ax.yaxis.set_major_locator(matplotlib.ticker.MultipleLocator(yticks))