#python #matplotlib #seaborn
#python #matplotlib #сиборн
Вопрос:
Я пытаюсь отобразить экономические данные Фреда, используя matplotlib / seaborn, но сами значения находятся в плавающих точках, а matplotlib вместо использования диапазона буквально просто использует все значения как отдельные точки оси y, что-то вроде . Мне нужно отобразить это таким образом, чтобы изменения были очевидны. Я попытался указать диапазон оси y с помощью yticks, но он по-прежнему не работает. Вот мой код
mort30=pd.read_csv('Dataset/MORTGAGE30US.csv')
mort30['DATE']= pd.DateTimeIndex(mort30['DATE']).years # to get only year values on the x-axis
sns.lineplot(data=mort30, x='DATE', y='MORTGAGE30US')
plt.yticks(np.arange(1,11,step=1))
Любые другие идеи, которые могли бы сработать? Вот ссылка на набор данных для графика (PS перейдите к редактированию графика и измените частоту на годовую для простоты)
Комментарии:
1. Если ось y является числовой, будет представлено изменение временного ряда.
Ответ №1:
Ваши y-данные — это объекты, а не числовые значения. Взгляните на CSV, последняя строка не содержит числа.
mort30['MORTGAGE30US']
47 4.5446153846153846
48 3.9357692307692308
49 3.1116981132075472
50 .
Name: MORTGAGE30US, dtype: object
Пожалуйста, в следующий раз добавьте работающий пример. Ваш показанный код не работает, он должен быть:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
mort30=pd.read_csv('MORTGAGE30US.csv')
mort30['DATE']= pd.DatetimeIndex(mort30['DATE']).year # to get only year values on the x-axis
sns.lineplot(data=mort30, x='DATE', y='MORTGAGE30US')
plt.yticks(np.arange(1,11,step=1))
Комментарии:
1. Спасибо, я просто предположил, что это будут значения с плавающей запятой, я буду иметь это в виду в будущем