2013-01-29 2 views
4

J'ai quelques données de température dans un fichier texte, et je voudrais le représenter dans un tracé «en boîte», montrant la température de chaque jour comme un histogramme.gnuplot: xdata heure et les boîtes

23 10 2012 12.3 
28 10 2012 14.1 
30 11 2012 30.4 
... 

Je triying pour le représenter avec un script gnuplot simiple comme ceci:

set terminal png enhanced font font_file size size_x, size_y tiny 
set xdata time 
set timefmt "%d %m %Y" 
set format x "%d" 
set boxwidth 0.9 relative 
plot u 1:4 w boxes 

Je voudrais laisser en blanc les jours où aucune donnée est disponible, mais gnuplot donne ces jours-ci la valeur du dernier jour, une donnée était disponible. Par exemple, dans le fichier de données que j'ai écrit auparavant, gnuplot donnerait un 12.3 au 23 octobre, mais je voudrais laisser cet écart sans aucune barre.

Existe-t-il un moyen d'obtenir ceci? J'ai défait une représentation d'histogramme parce que j'ai lu qu'elle n'est pas compatible avec les données de temps.

Nous vous remercions à l'avance

+0

Je prends c'est que tu veux dire que gnuplot donnerait 12.3 pour le 24 octobre d'octobre. Il me semble que cela devrait donner 12.3 pour le 23. – mgilson

Répondre

3

Votre problème est la ligne set boxwidth 0.9 relative. Relative dit que vous essayez de remplir 90% de l'espace entre les boîtes adjacentes. Vous voulez probablement définir une largeur de boîte absolue. Si vous modifiez votre script à set boxwidth 0.9 absolute, vous verrez des lignes verticales. En effet, lorsque vous utilisez des données de temps, l'unité de l'axe des x est en réalité secondes, donc votre boîte est seulement ~ 1 seconde de large lorsque votre échelle x est de plusieurs jours. Donc, pour obtenir chaque case pour la largeur d'un seul jour que vous utilisez

set boxwidth 3600*24 

Voici le script complet:

set term png enhanced 
set output 'foo.png' 
set xdata time 
set timefmt "%d %m %Y" 
set format x "%d" 
set boxwidth 3600*24 
plot 'test.dat' u 1:4 w boxes 

et la sortie:

enter image description here

+0

Merci beaucoup! Cela a résolu le problème! – josematamoros