пятница, 20 ноября 2015 г.

График: гистограмма распределения Y(X) вместе с накопительной суммой (Gnuplot)

Есть распределение величины Y(X) и накопительная сумма Sum(Y(X)). Нужно на одном графике нарисовать и распределение и сумму.



Исходные данные:

X Y(X) Sum(Y(X))
10 5 5
20 20 25
30 17 42
40 11 53
50 9 62
60 6 68
70 3 71
80 2 73
90 1 74
100 1 75

Начнём с простого варианта графика:

reset;
G_dat     = '_dat.txt'
G_pic_w   = 1000
G_pic_h   = 800
G_Title   = "Распределение Y(X) вместе с накопительной суммой";
G_XLabel  = "Величины X";
G_YLabel  = "Значения Y, накопительная сумма";

set terminal wxt enhanced size 1000,500

set title  G_Title    font ",16";
set xlabel G_XLabel   font ",12";
set ylabel G_YLabel   font ",12";

set key box left
set grid ytics xtics # Griglines
set boxwidth 0.8 relative 

set style fill solid border -1

plot
G_dat using 2:xtic(1) with boxes fill transparent solid 0.7 \
title columnheader(2), \
''  using 3:xtic(1) with lines linecolor rgbcolor "#000099" \
linewidth 3 title columnheader(3)

Здесь есть проблема - плохо видно распределение. Разнесём по разным осям Y
распределение (оставим на левой) и сумму (на правую Y).



reset;
G_dat     = '_dat.txt'
G_pic_w   = 1000
G_pic_h   = 800
G_Title   = "Распределение Y(X) вместе с накопительной суммой";
G_XLabel  = "Величины X";
G_YLabel  = "Значения Y, накопительная сумма";
G_Y2Label = "Накопительная сумма Y";

set terminal wxt enhanced size 1000,500

set title   G_Title    font ",16";
set xlabel  G_XLabel   font ",12";

set key off

set boxwidth 0.8 relative 

set xtics nomirror
set ytics nomirror
set y2tics nomirror

set y2label G_Y2Label  font ",12";
set ylabel  G_YLabel   font ",12";

set style fill solid border -1

set grid xtics ytics
plot   G_dat using 2:xtic(1) with boxes fill transparent solid 0.7
replot G_dat using 3:xtic(1) axes x1y2 with lines linecolor rgbcolor \
"#000099" linewidth 3
Было бы неплохо ещё нарвать сетку для правой оси, отдельно другим цветом, но я не нашёл, как это можно сделать достаточно просто.

Комментариев нет:

Отправить комментарий