2013-11-08 3 views
-1

Почему это ничего не добавляется к ci и mag? У моих данных явно есть точки в этом диапазоне.Несоблюдение заявления

import numpy as np 
import csv 
import matplotlib.pyplot as plt 
import random 
from pylab import * 
ci = [] 
mag =[] 
cntr = 0 
#fig = plt.scatter() 
#ax1 = fig.add_subplot(111) 
#ax2 = twiny() 
import csv 
with open('test2.csv', 'r') as f: 
    reader = csv.reader(f) 
    for row in reader: 
     try: 
      if (float(row[0]) < 2.5) and (float(row[1]<15.0)) and (float(row[1]>-10.0)): 
       ci.append(float(row[0])) 
       mag.append(float(row[1])) 
       cntr+=1 
     except Exception, e: 
      pass 
print ci[1], mag[1]  

N = 50 
x = ci 
y = mag 
area = .001 
plt.scatter(x, y, s=area, alpha=0.25) 
#plt.plot(x, y, ', ') 
plt.xlabel('Color Index') 
plt.ylabel('Magnitude') 
plt.title('H-R Diagram') 
plt.gca().invert_yaxis() 
plt.show() 
+0

ваш проблема не имеет ничего общего с matplotlib. Можете ли вы удалить последнюю часть кода и тег matplotlib? –

ответ

3
float(row[1]<15.0) 

float(row[1]>-10.0) 

Похоже, скобки находятся в неправильном месте.


Если row имеет все значения с плавающей точкой, вы могли бы сделать это вместо:

for row in reader: 
    row = map(float, row) 
    try: 
     if (row[0] < 2.5) and (-10 < row[1] < 15.0): 

Или, так как вам нужно только первые 2 значения в row, вы могли бы использовать

row = map(float, row[:2]) 
+0

Боже, спасибо. Я думаю, что настало время прекратить кодирование в течение дня. – myacobucci

Смежные вопросы