Построение кривых с разными точечными стилями в Gnuplot - PullRequest
4 голосов
/ 18 ноября 2011

Я использую Gnuplot для рисования графика.На графике я нарисовал три гладкие кривые, принадлежащие трем наборам данных.

В настоящее время я использую следующий скрипт Gnuplot.

reset
set terminal png
set xlabel "Square matrix size"

set ylabel "Time (in milliseconds)"
set yrange [0:750]

set title "Lower Triangular Matrix"
set key reverse Left outside
set grid
set output 'matrixlt.png'
set style data linespoints
plot "matrixlowertriangle.dat" using 1:2 lt 1 lw 2 smooth bezier title 'MatPro', \
     "matrixlowertriangle.dat" using 1:3 lt 2 lw 2 smooth bezier title 'C#' , \
     "matrixlowertriangle.dat" using 1:4 lt 3 lw 2 smooth bezier title 'C++'

С помощью приведенного выше скрипта я получаю следующий график.enter image description here

Теперь я хочу нарисовать каждую точку, принадлежащую одной и той же кривой, используя уникальный стиль точек.(Например, каждая точка, принадлежащая C #, использует один тип точек и точки данных C ++ в другом стиле.)

Я пробовал несколько учебных пособий, но все же не повезло.Может ли кто-нибудь помочь мне решить эту задачу?

Ответы [ 3 ]

7 голосов
/ 18 ноября 2011

У меня нет ваших данных, поэтому я составил некоторые (это всегда полезно, если дан какой-то полезный набор фиктивных данных ...):

0   0   0   0
200 1000    1200    1500
400 4000    7000    9000
600 7000    15000   18000
800 12000   23000   25000
1000    18000   33000   40000

На основании вашего кода я пытался

reset
set terminal png
set xlabel "Square matrix size"

set ylabel "Time (in milliseconds)"
set xrange [0:1200]
set yrange [0:50000]


set title "Lower Triangular Matrix"
set key reverse Left outside
set grid
set output 'matrixlt.png'
set style data linespoints
plot "matrixlowertriangle.dat" using 1:2 lt 1 lw 2 smooth bezier title 'MatPro', \
     "matrixlowertriangle.dat" using 1:3 lt 2 lw 2 smooth bezier title 'C#' , \
     "matrixlowertriangle.dat" using 1:4 lt 3 lw 2 smooth bezier title 'C++' , \
     "matrixlowertriangle.dat" using 1:2 with points title "", \
     "matrixlowertriangle.dat" using 1:3 with points title "", \
     "matrixlowertriangle.dat" using 1:4 with points title ""

и получил

this graph here

Это ближе к тому, что вы хотите?

2 голосов
/ 18 ноября 2011

Вы пытались указать pointtype X (где X - число) для аргументов сюжета?

0 голосов
/ 18 ноября 2011

Я думаю, что ваша проблема связана с использованием терминала PNG. Вы должны использовать формат PNG? Если вы попробуете set terminal postscript enhanced eps color, скрипт выдаст фигуры с четко различимыми типами линий.

Например, запустив следующий простой скрипт:

set terminal postscript enhanced eps color
set yrange [0:10]
set grid
set output 'test.eps'
set title 'EPS demonstration'
set style data linespoints

plot x*2 lt 1 lw 2 title 'A', \
     x**2 lt 2 lw 2 title 'B'

дает две строки с разными типами линий.

...