Ответ 1
Вам нужно использовать linecolor вместо lc, например:
set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"
"help set style line" дает вам больше информации.
У меня есть две пары наборов данных, которые мне нужно построить с использованием 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
Вам нужно использовать linecolor вместо lc, например:
set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"
"help set style line" дает вам больше информации.
Я столкнулся с этой темой, потому что я тоже боролся с пунктирными линиями (gnuplot 4.6 patchlevel 0)
Если вы используете:
set termoption dashed
Ваш опубликованный код будет работать соответственно.
Связанный вопрос:
Однако, если я хочу экспортировать png с:
set terminal png, это больше не работает. Кто-нибудь понял, почему?
Выключает, out, gnuplots png экспортная библиотека не поддерживает это.
Возможные решения:
pngcairo
в качестве своего терминала (set terminal pngcairo
), он будет работатьВы также можете установить опцию "пунктирная" при настройке терминала, например:
set term pdf dashed
Вот синтаксис:
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
Изменить: Извините, это не сработает для вас. Я просто вспомнил, что цвет линии находится в 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"
Возможно, вы захотите посмотреть на графический пакет 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`
Я знаю, что вопрос старый, но я нашел это очень полезным http://www.gnuplot.info/demo_canvas/dashcolor.html. Таким образом, вы можете выбрать тип линии и linecolor отдельно, но вам нужно предшествовать всем путем "set termoption dash" (работал у меня в gnuplot 4.4).