Основной вопрос, по-видимому, следующий: Как получить matplotlib Axes
от объекта FacetGrid
Морского Рога?
Если g = seaborn.FacetGrid(...)
, то g.axes
- это пустой массив Axes
. Здесь у вас есть один подзаговор, поэтому единственный элемент массива - это оси, которые нужно искать,
ax = g.axes[0,0]
Оттуда вы можете использовать известное решение для установки положения позвоночника с помощью set_position
, как показано, например, в демонстрация размещения позвоночника .
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(np.random.randint(-100, 100, size=(100, 2)), columns=['x', 'y'])
g = sns.FacetGrid(data=df)
g.map(plt.scatter, 'x', 'y')
ax = g.axes[0,0]
ax.spines['left'].set_position('zero')
ax.spines['bottom'].set_position('zero')
plt.show()
![enter image description here](https://i.stack.imgur.com/6Tg0J.png)