Ошибка в программе Python, используемой для построения данных
У меня проблема с небольшой программой на Python, которую я использовал раньше для построения графиков некоторых данных, которые я получил для симуляций Монте-Карло. Его цель - прочитать данные из файла и затем построить его. Ошибка, которую я получаю, такова:
Файл "C:\Users\Utilizator\AppData\Local\Programs\Python\Python37-32\lib\site-packages\numpy\lib\npyio.py", строка 746, в floatconv возвращает float(x) ValueError: не удалось преобразовать строку в float:
Итак, я понял, что каким-то образом программа python находит символы, которые не являются значениями с плавающей запятой или чем-то еще, но я не понимаю, почему... Кто-то может мне помочь с этим?
Как следует из кода, который я использую:
import numpy as np
import matplotlib.pyplot as plt
data_to_plot = np.loadtxt("return_map_test.txt", delimiter =" ",dtype=float)
#print data_to_plot[:,0]
fig = plt.figure()
fig.set_size_inches(10,5)
plt.title("Return map test for a buit-in RNG")
plt.xlabel("X")
plt.ylabel("Y")
ax = fig.add_subplot(111)
ax.patch.set_alpha(0.5)
plt.yscale('log')
plt.xscale('log')
plt.plot(data_to_plot[:,0],data_to_plot[:,1])
plt.plot(data_to_plot[:,0],data_to_plot[:,1], 'ro', markersize=1)
fig.savefig('return_map_test_built_in_RNG.png')
plt.close(fig)
Код, который генерирует данные, представляет собой симуляцию Монте-Карло, используемую для получения теста карты возврата и теста корреляции Пирсона для генераторов случайных чисел. Код, который записывает данные в файл.txt:
fstream rmt("return_map_test.txt", ios::out);
for(i = 0; i <= parameter; i++)
{
//cout<<X[i+1]<<" "<<X[i]<<endl; //debugging
rmt<<(double)X[i+1]<<" "<<(double)X[i]<<endl;
}
rmt.close();
для теста карты и теста корреляции Пирсона:
if (k > 0)
{
C[k] += (a - average_Xi*b)/(squared_average_Xi - average_Xi*average_Xi)/ens;
}
else C[k] = 1;
pct<< k <<" "<<(double)C[k]<<endl;
pct<< -k <<" "<<(double)C[k]<<endl;