2016-01-18 2 views
1

J'ai un assez gros problème quand il s'agit de tracer des données. D'abord, j'ai obtenu le fichier data.dat de mon programme C++, qui implémente le logistic map. Data.dat se présente comme suit: la première colonne doit être le nombre k qui doit figurer en bas de la représentation graphique. Quand k est dans l'intervalle [2,3] tout va bien, il n'y a qu'un seul attracteur (valeur correspondante à chaque k, qui est toujours dans l'intervalle (0,1)), mais quand c'est [3,4] compliqué. Pour chaque point k il y a 2 jusqu'à 100 points correspondant à chaque k. Chacun de ces points se trouve dans la colonne séparée, mais je n'ai aucune idée de comment les connecter à certains k.Mappage logistique dans gnuplot

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

Voici un échantillon de mes données pour les points: 2.5, 3, 3.2, 3.5, 3.8 et 3.99999, divisé par la nouvelle ligne pour plus de clarté (il est pas divisé par une nouvelle ligne dans mon fichier de données d'origine)

http://pastebin.com/2AcAjXzk

Merci pour toute aide, acclamations.

Répondre

0

Gnuplot ne peut pas gérer correctement un tel format de données. Soit modifier votre programme tel qu'il imprime dans chaque ligne la k suivie d'une valeur unique, ou vous traitez votre fichier de données avec un script awk court avant le traçage:

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

fonctionne comme prévu, merci pour votre aide, apprécié. – xxxxx

+0

Il semble que gnuplot * peut * gérer ce format de données: 'plot pour [i = 2: 100] 'fichier.txt' u 1: i avec des points lc rgb 'red' notitle'. Gnuplot ignore simplement si certaines lignes ont moins de 100 colonnes. Je ne sais pas si c'est efficace du tout, mais, au moins, ça fait le boulot :) – vagoberto

+0

@vagoberto En effet, j'ai manqué la limitation à 100 points. – Christoph