Выбор типа линии и цвета в Gnuplot 4.0 - PullRequest
36 голосов
/ 16 января 2010

У меня есть две пары наборов данных, которые мне нужно построить с помощью 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

Ответы [ 7 ]

28 голосов
/ 16 января 2010

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

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

«Линия стиля набора помощи» дает вам больше информации.

14 голосов
/ 03 мая 2012

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

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

set termoption dashed

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

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

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

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

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

  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
7 голосов
/ 12 июля 2012

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

set term pdf dashed
4 голосов
/ 16 января 2010

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

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

<code>
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"
3 голосов
/ 30 августа 2012

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

Сценарий Pyxplot для того, что вы хотите сделать выше, будет:

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`
2 голосов
/ 23 января 2012

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

...