Я использую gnuplot и имею некоторые данные, которые имеют более двух параметров. Я не хочу использовать 3D-графики. Поэтому я разделил данные по нескольким строкам на одном и том же участке.Нужно построить каждую n-ю строку в gnuplot
Мои данные выглядит следующим образом, в одном случае:
#k #N #time
1 1 0.000556134
2 1 0.00099
4 1 0.00201011
8 1 0.00376214
16 1 0.00675843
1 2 0.000717646
2 2 0.000794106
4 2 0.0016033
8 2 0.0033602
16 2 0.00795338
1 4 0.000476448
... ... ...
-первых, это количество потоков я использую, второй является размер буфера, а последний раз использовать на этом opperation.
Я хочу один график, где размер буфера X, время Y и есть одна строка для каждого «количества используемых потоков». Мой код до сих пор:
reset
set autoscale # scale axes automatically
unset log # remove any log-scaling
unset label # remove any previous labels
set xtic auto # set xtics automatically
set ytic auto # set ytics automatically
#set logscale x 2
#set logscale y 2
set rmargin 10
set bmargin 5
set tmargin 5
set key left top
set title
set term png giant size 1500, 800 crop
set title "Adapter Stream Input" font "verdana, 20"
set xlabel "Buffer Size" font "verdana, 20"
set ylabel "Time in Seconds" font "verdana, 20"
set key right bottom spacing 4 width 5 height 5 font "verdana, 15"
set output "AdapterStreamInputTests.png"
plot "AdapterStreamInputTests.txt" using ($1 == 1 ? $2 : 1/0):($1 == 1 ? $3 : 1/0) title '1 Stream' with linespoints ls 1 linecolor rgb "blue", \
"AdapterStreamInputTests.txt" using ($1 == 2 ? $2 : 1/0):($1 == 2 ? $3 : 1/0) title '2 Stream' with linespoints ls 1 linecolor rgb "red", \
"AdapterStreamInputTests.txt" using ($1 == 4 ? $2 : 1/0):($1 == 4 ? $3 : 1/0) title '4 Stream' with linespoints ls 1 linecolor rgb "yellow", \
"AdapterStreamInputTests.txt" using ($1 == 8 ? $2 : 1/0):($1 == 8 ? $3 : 1/0) title '8 Stream' with linespoints ls 1 linecolor rgb "brown", \
"AdapterStreamInputTests.txt" using ($1 == 16 ? $2 : 1/0):($1 == 16 ? $3 : 1/0) title '16 Stream' with linespoints ls 1 linecolor rgb "pink"
set output
Моя основная проблема сейчас в том, что он все правильно, но он не будет делать линии между графиками. Я читал из manual под командой «с помощью» главы, что:
Следует отметить, что сюжет «ль», участок «ль» с использованием 1: 2, и сюжета «ль», используя ($ 1): ($ 2) может быть тонко дробным: 1) если у le есть некоторые строки с одним столбцом, а некоторые с двумя, то первые будут изобретать значения x, когда они отсутствуют, второй будет спокойно игнорировать строки с одним столбцом , а третий сохранит неизмененное значение для строк с одной точкой (так что на графике с линиями ни одна строка не соединяет точки по плохой точке ); 2) если строка содержит текст в первом столбце, первый прервет график по ошибке, а второй и третий должны спокойно пропустить мусор.
Я думаю, что я нахожусь в третьей категории, и нет линий, потому что у каждого участка есть 4 недопустимых графика между ними, но я не могу найти способ исправить это.
Я не могу найти способ заставить его игнорировать недопустимые графики. И, похоже, не существует способа предварительной обработки, которую я смог найти, что могло бы удалить неиспользуемые графики. Но я, вероятно, что-то пропустил.
Спасибо, каждый сделал это, очень удобный инструмент. Снимки выглядят следующим образом: – RobbingDaHood
сюжет «AdapterStreamInputTests.txt» каждые 5 :: 0 с использованием заголовка 2: 3 «1 поток» с линиями ls 1, \ \t \t «AdapterStreamInputTests.txt» каждые 5: 1 с использованием 2: 3 название '2 поток' с linespoints 2 Ls, \ \t \t "AdapterStreamInputTests.txt" каждый 5 :: 2, используя 2: 3 название '4' поток с linespoints 3 Ls, \ \t \t "AdapterStreamInputTests.txt" каждый 5 :: 3 с использованием заголовка 2: 3 «8 Стрим» с точками линий ls 4, \ \t \t «AdapterStreamInputTests.txt» каждые 5 :: 4 с использованием заголовка 2: 3 '16 Stream 'с линией точек ls 5 – RobbingDaHood
@ Azrael3000 Ссылка есть вы можете написать одно или два предложения о «каждом»? Таким образом, ответ бесполезен ... – turbo