我通过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]
这个我可以很容易地绘制
现在我想知道为什么在打印时,第一套有"数字左右",而第二套没有。如何使数据"可绘制"?
['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]
现在我想知道为什么在打印它时,第一组的数字周围有',而第二组没有。
返回类型为<class 'str'>
,这就是为什么不能绘制数据的原因。它必须是数字类型,matplotlib
才能绘制它。
如何使数据"可绘制"?
您必须将类型转换为数字类型,在本例中为<class 'float'>
。您可以对每个元素进行迭代,或者更简单地,使用map
函数并执行float()
。
根据Data3.txt
的格式,您可以使用np.loadtxt
,它可以从字符串转换为浮点值并返回numpy数组。