Как вы можете добавить линию тренда на линейку морских линий? - PullRequest
0 голосов
/ 08 марта 2020

Вот что я пытаюсь воссоздать в Seaborn (это было сделано с Matplotlib)

enter image description here

Я вижу, что в Seaborn вы могли бы использовать regplot() но это для точечных диаграмм. В любом случае, если я попытаюсь использовать его, он не будет работать, потому что x равны datetime, поэтому я сделал смесь Seaborn и Matplotlib, это работает, но мне это не нравится, я думаю, что должно быть лучший способ, только Seaborn.

x = range(0, len(hom.fecha))

plt.figure(figsize=(12, 9))
plt.style.use('fivethirtyeight')

chart = sns.lineplot(x='fecha', y='n', data=df, 
                     hue='sexo', markers=True)
chart.set(title='Personas Migrantes', ylabel='# Personas', xlabel="Fecha")

# Linear regressions for each sex
z = np.polyfit(x, hom.n, 1)
p = np.poly1d(z)
plt.plot(hom.fecha, p(x), c="b", ls=":")

z = np.polyfit(x, muj.n, 1)
p = np.poly1d(z)
plt.plot(hom.fecha, p(x), c="r", ls=':')

Я получаю эту картинку:

enter image description here

Что, на мой взгляд, гораздо приятнее, чем первый, но я просто не понимаю, как добавить линии тренда, используя только морского происхождения.

Есть идеи?

=== РЕДАКТИРОВАТЬ ===

Если Я использую regplot(), он выдает исключение ...

sns.regplot(x="fecha", y="n", data=df)

Этот ... (он строит что-то, как точечная диаграмма, с точками)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-70-0f60957abc3f> in <module>
----> 1 sns.regplot(x="fecha", y="n", data=df)

blah blah blah

TypeError: unsupported operand type(s) for *: 'Timestamp' and 'float'
...