This работает только для меня, если я не устанавливаю yrange.gnuplot - использование yrange в круговых диаграммах?
Скажем, у меня есть sample-time-overview.csv
как
,avg,std,,,TProc,2267.5202096317,4573.0532262204
TParse,4.9922379603,138.6595434301,,,,,
THash,86.4020623229,548.8593468508,,,,,
TEnq,1.1181869688,2.0684998031,,,,,
TInQ,1482.2243626062,4257.8024051927,,,,,
TSend,2253.1871161473,4514.2823125251,,,,,
TWait,1.7578696884,43.1050730747,,,,,
TAnsw,14.3452407932,201.9216484892,,,,,
TProcAll,2269.2780793201,4573.3927526674,,,,,
TTotal,3853.3679320114,7095.0740689587,,,,,
, где я не заинтересован в первых или последних двух строках.
В основном копировать-вставить код из ссылки выше с незначительными адаптируя:
#!/usr/bin/gnuplot
reset
filename = "sample-time-overview"
set terminal pngcairo size 500,500 enhanced font 'Verdana,10'
set output filename."_piechart.png"
#set title ""
unset border
unset tics
set xrange[-1:1.5]
#uncommend yrange and the plotdisappears
#set yrange[-1.25:1.25]
centerX=0
centerY=0
radius=1
set datafile separator ','
set key off
set style fill solid 1
stats filename.".csv" u 2 every ::1::7 noout prefix "A"
angle(x)=x*360/A_sum
percentage(x)=x*100/A_sum
pos=0.0
colour=0
yi=0
plot filename.".csv" u (centerX):(centerY):(radius):(pos):(pos=pos+angle($2)):(colour=colour+1) every::1::7 w circle lc var
system(sprintf("display %s_piechart.png", filename))
это заканчивает тем, как
Я раскомментировать YRange и комментировать unset border
и это выглядит например:
, который очень раздражает, потому что, когда я затем попытаться добавить ярлыки ...
plot filename.".csv" u (centerX):(centerY):(radius):(pos):(pos=pos+angle($2)):(colour=colour+1) every::1::7 w circle lc var,\
"" u (1.5):(yi=yi+0.5/A_records):($1) every::1::7 w labels
это будет происходить:
Что я подозреваю, что это из-за недостающего YRange (потому что другой чем это, код не сильно отличается от того, что было опубликовано в связанном ответе).
Как я могу получить чертову работу?
Участок исчезает во второй картине, потому что установка YRange перед Статистика команды оставляет только строки TEnq для команда статистики. Тогда A_sum = 1.118, и все углы слишком велики для построения графика. Сюжет разрезается на третьем рисунке, потому что он явно не задал значение yrange, поэтому он был автомасштабирован для графика меток. Это автомасштабирование начинается с y = 0. Ни исчезновение, ни вырезание не вызваны не установкой отношения размеров. Вы исправили фиксированный график, переместив 'set yrange'. Кстати, мне нравится сюжет, особенно «левый» в «сюжете с ярлыками слева». – maij
@vagoberto Awesome, спасибо большое. Могу ли я каким-либо образом конкатенировать метки, взятые из файла, с процентом или мне нужно построить другой набор меток? – User1291
@ User1291 Отредактировал мой ответ. Вы можете объединить метки с помощью 'sprintf'. Например: 'sprintf ('% 05.2f %%% s', процент ($ 2), stringcolumn (1))' будет печатать что-то вроде '00.13% TParse'. Формат '% 05.2f' печатает число с 2 десятичными знаками и 5 пробелами. Формат '%%' печатает символ'% 'и'% s' печатает строку. – vagoberto