Разница в списках / проблемный график - PullRequest
1 голос
/ 29 марта 2020

Я импортировал список через CSV со следующим кодом

import csv
import numpy as np
import matplotlib.pyplot as plt

dates = []

with open('Data3.txt') as csvDataFile:
    csvReader = csv.reader(csvDataFile,quoting=csv.QUOTE_NONNUMERIC)
    for row in csvReader:
        dates.append(row)

data=np.array(dates)
print(data[:,0], data[:,1])

Печать приводит к следующим двум наборам

['0.13' '0.27' '0.4' ... '8737.6' '8737.73' '8737.87'] 
['0.022' '0.0205' '0.019' ... '7.1187' '6.7994' '7.2403']

Попытка построить это невозможно с

plt.plot(data[:,0], data[:,1])
plt.show()

Итак, я настроил еще один массив с

cplr=[0.01828922,  0.01972157,  0.02342053,  0.25928021,
0.26352547,  0.26883406]

Этот я могу легко построить

Теперь мне интересно, почему при печати его первый набор имеет «вокруг номер, а 2-го нет. Как я могу сделать данные "доступными"?

['0.13' '0.27' '0.4' ... '8737.6' '8737.73' '8737.87'] 
['0.022' '0.0205' '0.019' ... '7.1187' '6.7994' '7.2403']

[0.01828922, 0.01972157, 0.02342053, 0.25928021, 0.26352547, 0.26883406]

Ответы [ 2 ]

2 голосов
/ 29 марта 2020

Теперь мне интересно, почему при печати его первый набор имеет «вокруг числа, а второй нет».

Тип возврата - <class 'str'>, поэтому вы не можете построить данные. Для построения графика matplotlib это должен быть числовой тип.

Как я могу сделать данные "переносимыми"?

Вы должны типизировать в числовой тип, в этом случае <class 'float'>. Вы можете перебирать каждый элемент или, проще, использовать функцию map и делать float().

0 голосов
/ 29 марта 2020

В зависимости от формата Data3.txt вы можете использовать np.loadtxt, который выполняет преобразование из строки в число с плавающей точкой и возвращает массив numpy.

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