Поверните метки xtick (не отметьте галочкой) на графике морского побережья после добавления линии lowess - PullRequest
0 голосов
/ 30 октября 2018

это немного подробно, но помощь приветствуется. Это немного раздражающая особенность seaborn, что regplot не может работать с осями даты и времени. Это особенно важно, когда вы хотите использовать параметр lowess, который оценивает локальные средние значения, чтобы дать кривую (в отличие от линии), которая отслеживает изменения на графике. (Эта функция доступна, например, в R).

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

No Lowess line

Чтобы решить эту проблему, я взял индекс моего фрейма данных в качестве оси X и использовал statsmodels для вычисления линии низкого значения следующим образом:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import statsmodels.api as sm

rated = pd.read_csv('filepath.csv')

rated['linear'] = rated.index

x = rated['linear']
y = rated['trust_num']

lowess = sm.nonparametric.lowess(y, x, frac=.2)


low_y = [i[1] for i in lowess]
low_x = [i[0] for i in lowess]

rated['low_y'] = low_y
rated['low_x'] = low_x

rated['low_y'] = low_y
rated['low_x'] = low_x

h = sns.lineplot(x = 'linear', y = 'trust_num', data = rated)
h = sns.lineplot(x = 'linear', y = 'low_y', data = rated, color = 'r')

Это производит именно то, что я хотел бы: Lowess line

Последний шаг заключается в назначении дат для оси X, что я делаю следующим образом:

labels = [i for i in rated['date']]
h.set_xticklabels(labels)

Результатом является кластеризованная ось X, как показано ниже: bad dates

Достаточно справедливо, это обычная проблема с графикой. Поэтому я пытаюсь повернуть метки xtick:

plt.xticks(rotation=45)

Но это не имеет значения. Кто-нибудь может посоветовать, как я мог бы осыпать ось? Кажется, что боль почти добралась до цели и упала на кажущуюся простой проблему!

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