2011-02-14 2 views
3

Je suis nouveau à gnuplot, et essaye de créer un histogramme empilé pour un projet. Le problème que je rencontre est, que je ne suis pas capable de mettre des ticlabels sur l'axe des x (même si je le pouvais, ils ne sont pas formatés de manière ordonnée). Mon fichier gp est comme suit:Gnuplot: xtics - place des chaînes à des tics

Voici un aperçu de mon fichier de données:

CC P1-X P1-Y P2-X P2-Y 
1 0.1097586 0.3262812 1.980848 5.9098402 
2 0.1010986 0.2988812 0.9966702 5.8378412 
3 0.4017474 0.7559452 4.41813 11.7404132 
4 0.1028442 0.2974772 1.418744 6.0554552 
5 0.1097316 0.3216112 1.967492 5.8007364 
6 0.954794 0.3004874 0.9568386 5.778537 

Et voici mon fichier gp:

set title "GCC compilation option by average execution time as stacked histogram" 
set terminal jpeg medium 
set output "histosmalldata.jpeg" 
set boxwidth 0.9 absolute 
set style fill solid 1.00 border -1 
set key autotitle columnheader 
set key outside right top vertical Left reverse enhanced autotitles columnhead nobox 
set key invert samplen 4 spacing 1 width 0 height 0 
set style histogram rowstacked title offset character 0, 0, 0 
set style data histograms 
set xtics border in scale 1,0.5 nomirror rotate by -45 offset character 0, 0, 0 
set xtics norangelimit 
set xtics ("O2-ffast-math-finline-functions" 1, "O2-funroll-loops-march=barcelona-ffast-math-finline-functions" 2, "GCCFLAGS_O0" 3, "O2-ftree-vectorize-funroll-loops-march=barcelona" 4, "GCCFLAGS_O2" 5, "O2-ftree-vectorize-funroll-loops-ffast-math" 6) 
set xtics 1,6 nomirror 
set ytics 0,100 nomirror 
set ytics 1 
set yrange [0:20] 
set ylabel "Time" 
set xlabel "GCC Compiler Options" 
plot 'smalldata' using 2:xtic(1) ti col, '' using 3 ti col, '' using 4 ti col, '' using 5 ti col 

Ceci est l'image du graphique: Maintenant, dans l'axe des x, j'ai 1,2,3 - 6 ce que je ne veux pas, à la place, je voudrais "O2-ffast-math-finline-fonctions" pour 1 et ainsi de suite dans une forme soignée manière tted.

J'ai écrit ce script après avoir consulté quelques exemples de la page gnuplot et je n'ai pas une bonne compréhension de certains verbes, donc en dehors de la solution, tous les commentaires généraux sont les bienvenus.

Merci,
Sayan

Répondre

3

Vous ne devriez pas écraser vos paramètres xtics après avoir spécifié ce que vous voulez.

Mettez toutes les options en une seule commande set:

set xtics border in scale 1,0.5 nomirror rotate by -45 offset character 0, 0, 0\ 
     norangelimit\ 
     ("O2-ffast-math-finline-functions" 1,\ 
      "O2-funroll-loops-march=barcelona-ffast-math-finline-functions" 2,\ 
      "GCCFLAGS_O0" 3, "O2-ftree-vectorize-funroll-loops-march=barcelona" 4,\ 
      "GCCFLAGS_O2" 5, "O2-ftree-vectorize-funroll-loops-ffast-math" 6) 

Notez que vous pouvez échapper à la nouvelle ligne avec une barre oblique inverse comme le dernier caractère de la ligne.

+0

Merci, mais même après la combinaison toutes les déclarations de xtics, le graphique reste presque le même à une exception quand je essayez d'exécuter le script: ligne 22: avertissement: difficulté à faire de la place pour les étiquettes xtic .... Des idées? – Sayan

1

Je me suis rendu compte que je n'ai pas besoin de spécifier de ticlabels parce que cette information est dans mon fichier source. Je modifié mon fichier source comme:

set title "GCC compilation option by average execution time as stacked histogram" 
set terminal png size 1500,1200 font "/Library/Fonts/Times New Roman Bold.ttf, 13" 
set output 'hist_gcc_1.png' 
set boxwidth 0.9 absolute 
set style fill solid 1.00 border -1 
set key outside right top vertical Left reverse enhanced autotitles columnhead nobox 
set key invert samplen 4 spacing 1 width 0 height 0 
set style histogram rowstacked title offset character 0, 0, 0 
set datafile missing '-' 
set style data histograms 
set xtics border in scale 1,0.5 nomirror rotate by -45 offset character 0, 0, 0  norangelimit 
set ytics 0,100 nomirror 
set ytics 1 
set yrange [0:20] 
set ylabel "Time" 
set xlabel "GCC Compiler Options" 
plot 'data' using 2:xticlabels(1) ti col, '' using 3 ti col, '' using 4 ti col, '' using 5 ti col 

Mon fichier dat ressemble:

CC P1-X P1-Y P2-X P2-Y 
O2-ffast-math-finline-functions 0.1097586 0.3262812 1.980848 5.9098402 
O2-funroll-loops-march=barcelona-ffast-math-finline-functions 0.1010986 0.2988812 0.9966702 5.8378412 
GCCFLAGS_O0 0.4017474 0.7559452 4.41813 11.7404132 
... 
Questions connexes