2016-01-18 5 views
1

У меня есть довольно большая проблема, когда дело доходит до построения данных. Во-первых, я получил файл data.dat из моей программы на C++, которая реализует logistic map.Логическое отображение в gnuplot

Data.dat выглядит следующим образом: первая колонка должна быть числом k, которое должно быть в нижней части графика. Когда k находится в диапазоне [2,3], все в порядке, есть только один аттрактор (соответствующее значение каждому k, которое всегда находится в диапазоне (0,1)), но когда оно [3,4], получается сложно. Для каждой точки k существует 2 до 100 точек, соответствующих каждому k. Каждая из этих точек находится в отдельном столбце, но я понятия не имею, как я могу подключить их к определенному k.

Here is the image of what I'm trying to obain

Вот пример моих данных для точек: 2.5, 3, 3.2, 3.5, 3.8 и 3.99999, разделенного на новой строки для ясности (это не делится на новой строки в моем исходном файле данных)

http://pastebin.com/2AcAjXzk

Спасибо за любую помощь, веселит.

ответ

0

Gnuplot не может правильно обрабатывать такой формат данных. Либо изменить программу таким образом, что она печатает в каждой строке k следуют одному значению, или обработать файл данных с коротким awk сценария перед построением графика:

plot '< awk ''{ for(i = 1; i <= NF; i++) print $1, $i}'' file.txt' using 1:2 with dots notitle 
+0

работает, как ожидалось, спасибо за вашу помощь, оценили. – xxxxx

+0

Кажется, что gnuplot * может * обрабатывать этот формат данных: 'plot for [i = 2: 100] 'file.txt' u 1: i с точками lc rgb 'red' notitle'. Gnuplot просто игнорирует, если некоторые строки имеют менее 100 столбцов. Я не знаю, эффективна ли она вообще, но, по крайней мере, это делает работу :) – vagoberto

+0

@vagoberto Действительно, я пропустил ограничение до 100 очков. – Christoph

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