Код: Выделить всё
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
dfx=pd.DataFrame({'S':np.random.randint(10,100,9)*10,'C':
['X','X','X','Y','Y','Y','Z','Z','Z']})
fig,ax=plt.subplots()
mx=dfx.groupby('C')['S'].median()
sns.boxplot(y='S',x='C',data=dfx,ax=ax)
sns.lineplot(y=mx.values,x=mx.index,ax=ax)
plt.show()

Однако, когда я использую тот же код для этих данных, которые я читаю из файла CSV, я просто не могу отображать линейный график вместе с коробчатым графиком.
Код: Выделить всё
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df=pd.read_csv('test.csv')
fig,ax=plt.subplots()
m=df.groupby('Start Date')['Score'].median()
sns.boxplot(y='Score',x='Start Date',data=df,ax=ax)
sns.lineplot(y=m.values,x=m.index,ax=ax)
plt.show()

Не имеет значения, находится ли команда lineplot до или после boxplot, отображается только коробчатая диаграмма. Я вижу строку, только если строка boxplot закомментирована.
Я не понимаю, чем отличаются эти данные, которые я читаю из CSV, что я не могу накладывать строку и полеPS: Я знаю, что простой обходной путь — заменить строку seaborn lineplot командой линии matplotlib
Код: Выделить всё
ax.plot(m.values,'r-o',linewidth=4)
[img]https://i.sstatic. net/iZiHp.png[/img]
Мне просто любопытно, почему линия Seaborn ведет себя именно так.
Подробнее здесь: https://stackoverflow.com/questions/570 ... ot-seaborn