Matplotlib:空白图和窗口不会关闭

时间:2019-10-21 11:28:37

标签: python csv matplotlib

我正在尝试使用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 :(得分:0)

您需要修改代码中的三件事:

  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