简体   繁体   中英

Matplotlib: blank plot and window won't close

I'm trying to plot a curve using the data from a csv file using:

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()

But all it make is opening a completely blank window and I can't close it unless I close the terminal.

The csv file looks like this:

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

Do you have any idea why?

You need to modify three things in your code:

  1. Change 'rw' to 'r' when you read from the file
  2. Correct the way you iterate over data
  3. Convert the numbers from the second column to 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()

Content of the csv file:

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

在此处输入图像描述

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM