Изменить положение краевой оси на участке стыка морского побережья - PullRequest
0 голосов
/ 12 марта 2019

Seaborn по умолчанию строит граничные распределения в верхней и правой части основного графика.Можно ли изменить это местоположение (например, внизу и слева)?

Минимальный пример с использованием документации по морскому происхождению:

tips = sns.load_dataset("tips")
g = sns.jointplot(x="total_bill", y="tip", data=tips)

дает ...

enter image description here

1 Ответ

1 голос
/ 12 марта 2019

Это немного утомительно, но вы можете адаптировать этот пример к вашим потребностям.Он использует make_axes_locatable делитель.Менять это сверху вниз и справа налево не составит труда, но тогда вам нужно изменить маркировку и отметки на всех осях.

import seaborn as sns
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable


tips = sns.load_dataset("tips")
x = tips["total_bill"]
y = tips["tip"]

fig, axScatter = plt.subplots(figsize=(5.5, 5.5))
fig.subplots_adjust(.1,.1,.9,.9)

axScatter.scatter(x, y)

divider = make_axes_locatable(axScatter)
axHistx = divider.append_axes("bottom", 1.2, pad=0.1, sharex=axScatter)
axHisty = divider.append_axes("left", 1.2, pad=0.1, sharey=axScatter)

# make some labels invisible
axHistx.tick_params(labelbottom=False, bottom=False, 
                    left=False, labelleft=False, right=True, labelright=True)
axHisty.tick_params(labelleft=False, left=False, 
                    bottom=False, labelbottom=False, top=True, labeltop=True)
axHistx.invert_yaxis()
axHisty.invert_xaxis()
axScatter.xaxis.tick_top()
axScatter.yaxis.tick_right()
axScatter.xaxis.set_label_position('top')
axScatter.yaxis.set_label_position('right')
axScatter.set(xlabel="Total Bill", ylabel="Tip")

axHistx.hist(x, bins=16, density=True)
axHisty.hist(y, bins=16, density=True, orientation='horizontal')

plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...