Cómo combinar dos diagramas de caja y bigotes en uno usando gnuplot
Frecuentes
Visto 1,992 veces
1
I have two box-whisker plots, one showing time, another memory usage. Please see below:
Box-Whisker plot showing time usage: http://goo.gl/jhYBXr
Box-Whisker plot showing memory usage: http://goo.gl/0Wvamh
Is there anyway in gnuplot to combine these two into 1 graph? Ideally, I want two box-whisker plots per 'X' entry side-by-side. There will be two Y-axis - y1 showing time and y2 showing memory with different range.
Gracias de antemano.
1 Respuestas
0
As you haven't provided any example data, I used the data from gnuplot's candlestick.dem
demo and assumed, you have the JDK numbers in the first column:
2.1 1 1.5 2 2.4 4 6.
2.2 2 1.5 3 3.5 4 5.5
3.0 3 4.5 5 5.5 6 6.5
3.1 4 3.7 4.5 5.0 5.5 6.1
4.0 5 3.1 3.5 4.2 5 6.1
5.0 6 1 4 5.0 6 9
6.0 7 4 4 4.8 6 6.1
7.0 8 4 5 5.1 6 6.1
The plotting is done like follows:
Plot an empty plot (with
linetype -3
, which doesn't draw anything) and usexticlabels
to generate the custom xtics.Plot the box-whiskers for the time usage shifted a bit to the left relative to the xtic
Plot the box-whiskers for the memory usage shifted a bit to the right relative to the xtic
For simplicity, here I use the same data for both time and memory, but you can of course use different data files and different y2range
y yrange
:
set boxwidth 0.2 absolute
set offset 0.5,0.5,0,0
set yrange[0:10]
set y2range[0:10]
set ytics nomirror
set y2tics
set ylabel 'time usage'
set y2label 'memory usage'
set xlabel 'JDKs'
set key left
plot 'data.txt' using 2:4:xticlabels(1) linetype -3 notitle,\
'' using ($2-0.15):4:3:7:6 with candlesticks linetype 1 title 'Quartiles, time' whiskerbars,\
'' using ($2-0.15):5:5:5:5 with candlesticks linetype -1 linewidth 2 notitle,\
'data.txt' using ($2+0.15):4:3:7:6 with candlesticks linetype 2 axes x1y2 title 'Quartiles, memory' whiskerbars,\
'' using ($2+0.15):5:5:5:5 with candlesticks linetype -1 linewidth 2 axes x1y2 notitle
Esto da:
Respondido el 10 de Septiembre de 13 a las 08:09
Thanks a lot @Christoph! It worked. Just to clarify, 'lt' means 'line type', 't' means 'title', right? - Ishtiaque Hussain
@IshtiaqueHussain Yes, I'm used to use only the shorthands. I updated the example to use the more verbose options. - Christoph
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas graph gnuplot or haz tu propia pregunta.
The link for the memory plot is broken. If you update it, I can include the images. - Christoph
Updated, link should work now. Forgot enable the 'view'. - Ishtiaque Hussain