2016-10-15 5 views
1

У меня есть файл данных, аналогичный приведенному ниже (Есть совершенно 10 строк):Генерировать сложены диаграммы бар с помощью GNUPLOT

1.5 1.6 3.0 4.0 1.2 1.3 
1.7 1.1 2.6 3.4 1.5 1.6 
...... 

Каждая строка, соответствующая результатам 3 методов на наборе данных, где первые два значения для первого метода, следующие два для второго метода и последние два для последнего метода. Я хочу, чтобы генерировать диаграмму сложены бар, таким образом, что

  • Для каждого набора данных, было бы 3 бара, каждый из которых соответствует способу;

  • Для каждого метода его стержень разбит на два, где нижний (верхний) один представляет первое (второе) значение;

  • Цвет панели для метода отличается от цвета другого метода.

Более конкретно, я хочу, диаграмма, как link (К сожалению, у меня не хватает репутации, чтобы показать картину здесь.)

Как я могу добиться этого с помощью GNUPLOT?

ответ

0

Эта задача слишком сложна для гистограммы gnuplot, потому что вы объединяете кластеризацию и укладку. Я думаю, что для вас является наиболее подходящим рисовать каждую коробку часть вручную с boxxy стиле:

unset key 
set xtics 1,4 
set for [i=0:9] xtics add (sprintf("data %d", i + 1) i*4 + 1) 
set style fill solid noborder 
set style data boxxy 
set autoscale xfix 

set linetype 1 lc rgb "#9400D3" 
set linetype 2 lc rgb "#009E73" 
set linetype 3 lc rgb "#56B4E9" 
set linetype 4 lc rgb "#B46AD3" 
set linetype 5 lc rgb "#64C4AA" 
set linetype 6 lc rgb "#8BC8EC" 

plot for [i=0:2] "file.dat" u ($0 * 4 + i):(0.5*column(2*i + 1)):(0.5):(0.5*column(2*i+1)),\ 
    for [i=0:2] "file.dat" u ($0 * 4 + i):(0.5*column(2*(i+1)) + column(2*i + 1)):(0.5):(0.5*column(2*(i+1))) 

set for добавляет метки вручную на центральной панели для каждой строки.

В первой строке plot показаны нижние значения каждого бара, вторая строка отображает верхние значения.

enter image description here

+0

Thanks. Извините, но я не могу дать вам голосование, так как у меня недостаточно репутации. – addddddc

Смежные вопросы