2017-02-16 14 views
0

У меня есть следующий код, который создает многослойную гистограмму:GNUPLOT кластера диапазон х для уложенных гистограмм

#!/usr/bin/gnuplot 
set term postscript eps enhanced color 
#set output 'stacked-hist.eps' 
set output ARG1.'.eps' 

set title ARG1 
set key top left outside horizontal autotitle columnhead 

#set xtics rotate by 90 offset 0,-5 out nomirror 
set autoscale x 
set ytics out nomirror 

set style fill solid border -1 
set boxwidth 0.5 relative 
set style data histograms 
set style histogram rowstacked 
set xlabel "Degree of node" 

plot ARG1 using 2, '' using 3:xtic(1) 

Это приводит к следующим образом: (Поскольку xrange равно 0: 5000) Stacked histogram for a long x-range

То, что я хотел бы иметь, следующее (во входных данных у меня не так много точек данных для каждого X. Поэтому я хотел бы видеть кластеры гистограмм, как показано ниже: enter image description here

Есть ли способ сделать это в gnuplot? Существует ли формальное название для таких гистограмм с укладкой? (сгруппированные сложенные гистограммы)

+0

Можете ли вы предоставить немного больше информации? Неясно, как интерпретировать ваш примерный график, следовательно, неясно, как его воспроизвести. Нет ли данных в 200

+0

может быть несколько точек данных между 200 и 1000, но я хочу их игнорировать. Возможно ли это в gnuplot? – Trojosh

ответ

0

Из вашего ответа на мой комментарий это звучит так, как будто вы просто хотите пропустить значения, которые ниже некоторого числа. Если это все, что вам нужно, это довольно просто. Сначала давайте создадим таблицу случайных чисел и сделать гистограммы его (я пропущу настройки стиля, но я использую ваши):

set table set out 'rand.dat' plot rand(0) unset table plot 'rand.dat'

Это дает нам это:

Normal histogram plot

Если мы хотим, чтобы пропустить рисунок гистограммы коробки для значений ниже определенного значения, скажем, 0,4, мы можем только сделать это:

c = 0.4 plot 'rand.dat' using ($2 > c ? $2 : NaN)

который получает нас это:

Histogram with gaps

Если я до сих пор не понимаю, что вы пытаетесь сделать, извините. Не стесняйтесь просвещать меня, и я попробую еще раз.