#python
#python
Вопрос:
Я считываю данные из csv.файла с помощью pandas.read_csv(). Поскольку файл данных содержит несколько записей, я отображаю только данные, относящиеся к графику.
Как показано на графике ниже, верхнее число меньше 79, но на графике оно выше. Как я мог бы изменить параметры, чтобы сделать график нормальным?
1 38.8601776787174
2 67.9876506204439
3 79.6575498473462
4 55.4554563564545
Комментарии:
1. Не могли бы вы, пожалуйста, опубликовать больше вашего кода?
2. @GKE Я только что прочитал данные из файла, например, data = pd.read_csv(«xxx») и я уже опубликовал некоторые записи. Однако я не уверен, достаточно ли этого, чтобы найти, в чем проблема.
3. Просто дикое предположение: ваши данные не являются float, а фактически остаются string, потому что вы их не преобразовали
Ответ №1:
Убедитесь, что вы конвертируете из строки, особенно если вы читаете из файла.
Это график, который я получил со стандартным графиком с плавающими точками:
import matplotlib.pyplot as plt
plt.plot([38.8601776787174 , 67.9876506204439 , 79.6575498473462 , 55.4554563564545])
plt.ylabel('some numbers')
plt.show()
И вот это происходит, когда только одно из значений является строкой:
import matplotlib.pyplot as plt
plt.plot([38.8601776787174 , 67.9876506204439 , 79.6575498473462 , str(55.4554563564545)])
plt.ylabel('some numbers')
plt.show()
Обязательно преобразуйте в int или float перед построением графика.
Комментарии:
1. Образцы вырезаются из фрейма данных, поэтому это object / Series вместо float . Это именно то, что вы говорите, но просто не строка.
2. Я предположил, что это строка, учитывая, что вы читали их из файла, не видя полного кода, который я не смог бы определить. В любом случае вам нужно преобразовать их в значения с плавающей точкой / целые числа, если это нечисловой тип, вы получите прямую бессмысленную линию, как указано выше, с бессмысленной осью y.
3. Понял. Я уже преобразовал этот столбец в числовой. Спасибо.