почему большее число находится ниже по оси y, когда я использую matplotlib.pyplot?

#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. Понял. Я уже преобразовал этот столбец в числовой. Спасибо.