Gnuplot: как сделать гистограмму, в которой сложены только одни столбцы, а другие нет?

Скажем, у меня есть данные, которые я хочу разделить на разные столбцы, но один из них разделен, например. Например:

A1 : 4
B1 : 1 2

A2 : 3
B2 : 2 3

И затем я хочу, чтобы (только) стержни B были сложены. Для приведенных выше данных график должен выглядеть так:

          y
o         y
o y     o y
o y     o x
o x     o x
A B     A B

Как я могу это сделать? Я могу изменить формат входного файла (или даже использовать несколько файлов, если это необходимо), но мне очень хотелось бы иметь конечный график с кластерами баров, где одни бары каждого кластера сложены, а другие нет.


person Eduardo Bezerra    schedule 21.11.2013    source источник


Ответы (1)


Вот один из способов, как вы можете этого добиться. Для этого вам нужно сгруппировать значения A* вместе в файле данных, за которыми следуют две новые строки, а затем все значения B*:

A1 4
A2 3


B1 1 2
B2 2 3

Разделение наборов данных двумя новыми строками позволяет получить к ним доступ с помощью оператора index. (Использование двух файлов также будет работать)

Затем вы строите первую гистограмму. Это неявно использует 0, 1 и т. д. в качестве значений x, но дает им метки A1, A2. Для значений B* вы создаете новую гистограмму с newhistogram и устанавливаете ее первое значение x с at на 0 плюс один boxwidth.

set style data histogram
set style histogram rowstacked
box_wd = 0.3
set boxwidth box_wd
set style fill solid
unset key

plot 'file.txt' using 2:xtic(1) index 0, \
     newhistogram at box_wd, \
     'file.txt' using 2:xtic(1) index 1,\
     '' using 3 index 1

С 4.6.4 вы получаете:

введите здесь описание изображения

Единственное может быть, что ключи двух гистограмм разделены новой линией.

person Christoph    schedule 21.11.2013