Python MatPlotLib отметки - PullRequest
       3

Python MatPlotLib отметки

0 голосов
/ 16 ноября 2018

Пожалуйста, помогите мне разобраться с этими отметками.Я работал над этим часами и не могу найти решение.Этот набор данных представляет собой коллекцию средних цен на жилье для различных городов с 1996-04 до конца 2018 года. Вот мой код:

# Plotting Hot Springs housing value over time
fig=plt.figure(figsize=(20, 8), dpi= 80, facecolor='w', edgecolor='k')
ax=plt.axes
plt.plot(syrHST['71913'],color='blue')
plt.plot(syrHST['71901'],color='red')
plt.xticks(rotation='vertical', fontsize=20)
plt.ylabel('Average Housing Value', fontsize=20)
plt.gca().legend(('71913','71901'), fontsize=20, loc='upper left')
fig.suptitle('Hot Springs', fontsize=40)
plt.show()

Вот что он мне показывает:

Очевидно, что эти метки вдоль оси x не годятся.Мне нужно найти способ уменьшить количество этикеток примерно до 22, чтобы их можно было четко прочитать.Я пытался повернуть ярлыки, но это не помогает.Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

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

df.index = pd.to_datetime(df.index)

Если вы затем построите столбец из фрейма данных, он покажет вам автоматическое количество дат (в большинстве случаев не более 9 по оси).

0 голосов
/ 16 ноября 2018

Вы можете установить тики для некоторого вывода np.arange, используя что-то вроде этого:

def aranger(cols, n_ticks):
    return np.arange(cols.min(), cols.max(), (cols.max()-cols.min())/n_ticks)

# Plotting Hot Springs housing value over time
fig=plt.figure(figsize=(20, 8), dpi= 80, facecolor='w', edgecolor='k')
ax=plt.axes
index = aranger(syrHST[['71913','71901']], 10)
plt.plot(syrHST['71913'],color='blue')
plt.plot(syrHST['71901'],color='red')
plt.xticks(index, rotation='vertical', fontsize=20)
plt.ylabel('Average Housing Value', fontsize=20)
plt.gca().legend(('71913','71901'), fontsize=20, loc='upper left')
fig.suptitle('Hot Springs', fontsize=40)
plt.show()

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

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