Для 3-панельного графика с использованием линейного графика морского происхождения (также пробовал с relplot с тем же результатом) в центральной и правой панелях некоторые точки отсутствуют или отображаются неправильно. Я установил сортировку в False, чтобы она, как я понимаю, отображала точки в порядке индекса. Исходя из данных выборки (ссылка ниже), самый правый график для метода 3 должен состоять из точек:
bin (y) diff (x)
1500 -5
1700 -5
1900 -12
2100 -16,5
2300 -19,5
2500 -9
2700 -5
2900 -3
подключен в этом порядке. Но линия не показывает первые две точки правильно. Строка для метода 0 еще хуже, где значение bin (y) первой точки должно быть 1500. При сортировке значения y должны возрастать вдоль каждой линии с 1500 до 2900, и эти два примера не следуют этому , Линия метода 0 на центральной панели также показывает падение значения y в направлении верхнего конца.
%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
df = pd.read_csv("sample_data.csv")
print df[0:5]
fig, axes = plt.subplots(figsize=(12,4), ncols=3, nrows=1, sharey=True)
xcols = ['hist','fut','diff']
n=-1
for ax in axes.flatten():
n += 1
if n > 0:
sns.lineplot(data=df,x=xcols[n],y='bin',hue='method',sort=False,ax=ax,legend=False,ci=None)
else:
sns.lineplot(data=df,x=xcols[n],y='bin',hue='method',sort=False,ax=ax,legend='brief',ci=None)
plt.show()
![sample plot](https://i.stack.imgur.com/0k6dw.png)
область выборочных данных здесь .
Любая помощь в выяснении того, что мне не хватает, будет принята с благодарностью.
Обновление: я нашел обходной путь, избегая Seaborn (из этот полезный пост ):
for n,i in enumerate(axes):
for name, group in df.groupby('method'):
group.plot(x=xcols[n],y='bin',ax=axes[n],label=name,legend=False)
handles, labels = axes[n].get_legend_handles_labels()
fig.legend(handles, labels, loc=7)
Но это не отвечает на вопрос о морском рождении.