Gnuplot: 2 вопроса о моей оси X гистограмм и добавьте процент - PullRequest
2 голосов
/ 08 апреля 2019

Мне нужно сгенерировать гистограмму gnuplot, чтобы увидеть эволюцию процессора и оперативной памяти моего кластера за месяц:

Я хочу сгенерировать гистограмму из этого файла:

July 2018,19%,46%
August 2018,20%,45%
September 2018,20%,41%
October 2018,21%,39%
November 2018,21%,39%
December 2018,21%,41%
January 2019,25%,46%
February 2019,27%,50%

Для этого вот мой код:

set title " CLUSTER 1 "
set terminal png truecolor size 960, 720
set output " cluster1.png"
set key below
set grid
set style data histograms
set style fill solid 1.00 border -1
set datafile separator ","
plot 'cluster.txt' using 2:xtic(1) title " CPU consumption (%) ", '' using 3 title " RAM consumption (%)"

На данный момент у меня есть такой результат: cluster

Но, как вы можете видеть, у меня естьпроблема с моими осями х.Даты накладываются друг на друга, и я не могу это изменить ... Можете ли вы показать мне, как это изменить?

И, можете ли вы сказать мне, как я могу поставить проценты в / выше гистограмм столбцов?

Наконец, я хотел бы, чтобы гистограммы были такими:

[2]

1 Ответ

5 голосов
/ 08 апреля 2019

Чтобы обернуть слова в категории, вы можете заменить пробел на строку, если необходимо, на троичную функцию:

f(w) = (strlen(w) > 10 ? word(w, 1) . "\n" . word(w, 2) : w)

Заменяет пробел на \ n, если длина метки превышает 10 символов.

Чтобы добавить знак процента на оси Y, установите формат y следующим образом:

set format y "%g%%"

Чтобы добавить метки, используйте сюжет с метками:

'' using 0:($2+1):(sprintf("%g%%",$2)) with labels notitle, \
'' using 0:($3+1):(sprintf("     %g%%",$3)) with labels notitle

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

set bmargin at screen 0.1

Итак, сценарий выглядит так:

f(w) = (strlen(w) > 10 ? word(w, 1) . "\n" . word(w, 2) : w)

set title "CLUSTER 1"
set terminal png truecolor size 960, 720
set output "cluster1.png"
set bmargin at screen 0.1
set key below
set grid
set style data histograms
set style fill solid 1.00 border -1
set boxwidth 0.7 relative
set yrange [0:]
set format y "%g%%"
set datafile separator ","
plot 'cluster.txt' using 2:xtic(f(stringcolumn(1))) title " CPU consumption (%) ", \
'' using 3 title " RAM consumption (%)", \
'' using 0:($2+1):(sprintf("%g%%",$2)) with labels notitle, \
'' using 0:($3+1):(sprintf("     %g%%",$3)) with labels notitle

enter image description here

...