Подтвердить что ты не робот

Выбор типа линии и цвета в Gnuplot 4.0

У меня есть две пары наборов данных, которые мне нужно построить с использованием Gnuplot.

Я хочу, чтобы первая пара была построена красным цветом, одна сплошная и одна пунктирная. Вторая пара, я хочу построить синим, одно сплошное и одно разбитое.

Я несколько раз экспериментировал с set style line, но я не могу получить это точное поведение. Моя последняя попытка (прилагается) отображает первую пару в красном (сплошное), а вторая пара - синим (пунктирная).

Любая помощь будет принята с благодарностью.

set style line 1 lt 1 lw 3 pt 3
set style line 2 lt 1 lw 3 pt 3
set style line 3 lt 3 lw 3 pt 3
set style line 4 lt 3 lw 3 pt 3
plot 'data1.dat' using 1:3 w l ls 1,\
     'data1.dat' using 1:4 w l ls 2,\
     'data2.dat' using 1:3 w l ls 3,\
     'data2.dat' using 1:4 w l ls 4
4b9b3361

Ответ 1

Вам нужно использовать linecolor вместо lc, например:

set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"

"help set style line" дает вам больше информации.

Ответ 2

Я столкнулся с этой темой, потому что я тоже боролся с пунктирными линиями (gnuplot 4.6 patchlevel 0)

Если вы используете:

set termoption dashed

Ваш опубликованный код будет работать соответственно.

Связанный вопрос:
Однако, если я хочу экспортировать png с: set terminal png, это больше не работает. Кто-нибудь понял, почему?

Выключает, out, gnuplots png экспортная библиотека не поддерживает это.
Возможные решения:

  • можно просто экспортировать в ps, а затем преобразовать его с помощью pstopng
  • в соответствии с @christoph, если вы используете pngcairo в качестве своего терминала (set terminal pngcairo), он будет работать

Ответ 3

Вы также можете установить опцию "пунктирная" при настройке терминала, например:

set term pdf dashed

Ответ 4

Вот синтаксис:

  set terminal pdf {monochrome|color|colour}
                   {{no}enhanced}
                   {fname "<font>"} {fsize <fontsize>}
                   {font "<fontname>{,<fontsize>}"}
                   {linewidth <lw>} {rounded|butt}
                   {solid|dashed} {dl <dashlength>}}
                   {size <XX>{unit},<YY>{unit}}

и пример:

set terminal pdfcairo monochrome enhanced font "Times-New-Roman,12" dashed

Ответ 5

Изменить: Извините, это не сработает для вас. Я просто вспомнил, что цвет линии находится в 4.2. Я столкнулся с этой проблемой в прошлом, и я решил исправить gnuplot.

Вы можете управлять цветом с помощью строки стиля набора. "lt 3" даст вам пунктирную линию, а "lt 1" даст вам сплошную линию. Чтобы добавить цвет, вы можете использовать "lc rgb" color ". Это должно делать то, что вам нужно:


set style line 1 lt 1 lw 3 pt 3 lc rgb "red"
set style line 2 lt 3 lw 3 pt 3 lc rgb "red"
set style line 3 lt 1 lw 3 pt 3 lc rgb "blue"
set style line 4 lt 3 lw 3 pt 3 lc rgb "blue"

Ответ 6

Возможно, вы захотите посмотреть на графический пакет Pyxplot http://pyxplot.org.uk, который имеет очень похожий синтаксис для gnuplot, но с грубыми краями, очищенными, Он очень аккуратно обрабатывает цвета и стили линий и равномерно между терминалами x11 и eps/pdf.

Pyxplot script для того, что вы хотите сделать выше, будет:

set style 1 lt 1 lw 3 color red
set style 2 lt 1 lw 3 color blue
set style 3 lt 2 lw 3 color red
set style 4 lt 2 lw 3 color blue
plot 'data1.dat' using 1:3 w l style 1,\
  'data1.dat' using 1:4 w l style 2,\
  'data2.dat' using 1:3 w l style 3,\
  'data2.dat' using 1:4 w l style 4`

Ответ 7

Я знаю, что вопрос старый, но я нашел это очень полезным http://www.gnuplot.info/demo_canvas/dashcolor.html. Таким образом, вы можете выбрать тип линии и linecolor отдельно, но вам нужно предшествовать всем путем "set termoption dash" (работал у меня в gnuplot 4.4).