Gnuplot
Install
./configure --disable-dependency-tracking \
--disable-silent-rules --disable-wxwidgets \
--with-qt=no --without-tutorial
make -j 32
sudo make install
Example
#!/usr/bin/env gnuplot
set terminal svg size 640,400 dynamic enhanced
set title "Elasticsearch Benchmark\nnode (core x 48 x 2.3G, mem x 30G), docs (301502, 607M)"
set auto x
set style data histogram
set style histogram cluster gap 1
set style fill solid border -1
set xtic rotate by -90 scale 0
set xtic offset -0.7, 0
set datafile separator '|'
set tics font ", 8"
set xlabel 'shared/replica/segment' offset 0, 2
set ylabel 'concurrency' offset 2
set ytics nomirror
set y2tics
set y2label 'latency' offset -2
set autoscale y2
plot 'perf.dat' using 4 ti col, \
'perf.dat' using 5:xtic(sprintf("%d/%d/%d", $1, $2, $3)) ti col axes x1y2
perf.dat:
nshard | nreplica | nsegment | concurrency | latency
1 | 0 | 17 | 180 | 350
1 | 1 | 17 | 360 | 175
1 | 2 | 17 | 540 | 117
1 | 3 | 17 | 720 | 88
1 | 4 | 17 | 860 | 73
1 | 5 | 17 | 1020 | 62
1 | 6 | 17 | 1170 | 54
1 | 0 | 1 | 200 | 315
1 | 1 | 1 | 400 | 155