Matplotlib: пустой график и окно не закроется - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь построить кривую, используя данные из файла CSV, используя:

import matplotlib.pyplot as plt
from csv import reader

with open('transmission_curve_HST_ACS_HRC.F606W.csv', 'rw') as f:
         data = list(reader(f))
         wavelength_list = [i[0] for i in data[1::]]
         percentage = [i[1] for i in data[1::]]

plt.plot(wavelength_list, percentage)
plt.show()

Но все, что он делает, - это открытие полностью пустого окна, и я не могу закрыть его, пока я не закроютерминал.

CSV-файл выглядит так:

4565,"0,00003434405472044760"
4566,"0,00004045191689260860"
4567,"0,00004656394357747830"
4568,"0,00005267963655205460"
4569,"0,00005879949856084820"

У вас есть идеи, почему?

1 Ответ

0 голосов
/ 21 октября 2019

Вам необходимо изменить три вещи в своем коде:

  1. Измените 'rw' на 'r' при чтении из файла
  2. Исправьте способ итерации по данным
  3. Преобразовать числа из второго столбца в float

import matplotlib.pyplot as plt
from csv import reader

with open('transmission_curve_HST_ACS_HRC.F606W.csv', 'r') as f:
         data = list(reader(f))
         wavelength_list = [i[0] for i in data]
         percentage = [float(str(i[1]).replace(',','.')) for i in data]

plt.plot(wavelength_list, percentage)
plt.show()

Содержимое файла csv:

4564,"0,00002824029270045730"
4565,"0,00003434405472044760"
4566,"0,00004045191689260860"
4567,"0,00004656394357747830"
4568,"0,00005267963655205460"
4569,"0,00005879949856084820"

enter image description here

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