Форматирование оси временных рядов в Сиборне - PullRequest
0 голосов
/ 28 апреля 2020

Я изучаю Seaborn и пытаюсь выяснить, как я могу отформатировать ось X для дат за годовой период, чтобы она была читабельной. Давайте предположим, что у нас есть фрейм данных, который содержит измерения погоды для каждого дня в течение всего года (365 строк).

sns.scatterplot(x = df_weather["DATE"], y = df_weather["MAX_TEMPERATURE_C"], color = 'red')
sns.scatterplot(x = df_weather["DATE"], y = df_weather["MIN_TEMPERATURE_C"], color = 'blue')
plt.show()

enter image description here

Как я могу обеспечить что метки оси X читабельны? В идеале, один лейбл в месяц будет в порядке.

Спасибо!

1 Ответ

0 голосов
/ 01 мая 2020

Не совсем уверен, на что похожа дата вашего столбца, но, возможно, попробуйте что-то вроде ниже, сначала сгенерируйте некоторые данные, у меня есть дата в виде строки, которая, я думаю, похожа на вашу:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

DATE = pd.date_range('2020-01-01', periods=365, freq='D').strftime('%y%y-%m-%d')
MIN = np.random.uniform(low=10,high=25,size = len(index))
MAX = MIN + np.random.uniform(low=5,high=10,size =len(index))
df = pd.DataFrame({'DATE':DATE,'MIN':MIN,'MAX':MAX})

График как вы использовали sns:

fig, ax = plt.subplots(figsize = (10,4))

ax = sns.scatterplot(x = "DATE", y = "MAX",data=df, color = 'red')
ax = sns.scatterplot(x = "DATE", y = "MIN",data=df, color = 'blue')

Теперь мы определяем начало mths для определения тиков:

mths = pd.date_range('2020-01-01', periods=12, freq='MS')

ax.set_xticks(mths.strftime('%y%y-%m-%d'))
ax.set(xticklabels=mths.strftime('%b'))
plt.show()

И все должно выглядеть хорошо:

enter image description here

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