Размер установочной точки не зависит от веса линии

У меня есть следующие стили линий, определенные в gnuplot:

set linetype 1 lc rgb "red" lw 3 pt 7
set linetype 3 lc rgb "red" lw 1 pt 7

Кажется, что точки получают часть их размера от веса линии. Я использую эти стили внутри plot for цикла с linetype cycle используя тот же стиль для cspline и соответствующих точек, поэтому я не вижу простого способа просто определить отдельный стиль для точек.

Я получаю такие результаты:

Точки реагируют на pointsize но точка в типе 1 линии все еще немного больше (предположительно, из более толстой границы).

Можно ли получить точки в этих двух стилях одинакового размера?

В ответ на комментарий Мигеля более полным примером моего варианта использования является:

filenames = "A B C D"

set linetype 1 lc rgb "blue" lw 3 pt 7
set linetype 2 lc rgb "red" lw 3 pt 7
set linetype 3 lc rgb "blue" lw 1 pt 7
set linetype 4 lc rgb "red" lw 1 pt 7
set linetype cycle 4

plot for [file in filenames] file.".csv" \
 using 1:2
 title file \
 smooth csplines, \
 for [file in filenames] file.".csv" \
 u 1:2 with points notitle

типы линий 5-8 устанавливаются циклическим циклом и используются последней частью команды построения графика. Рекомендации по другому способу сделать это приветствуются!

2 ответа

Для вашего конкретного случая вы можете установить больше стилей и сделать это довольно автоматически с помощью цикла do for (повторное использование кода):

filenames = "A B C D"

do for [i=0:1] {
set linetype (4*i+1) lc rgb "blue" lw (i == 1 ? 0 : 3) pt 7
set linetype (4*i+2) lc rgb "red" lw (i == 1 ? 0 : 3) pt 7
set linetype (4*i+3) lc rgb "blue" lw (i == 1 ? 0 : 1) pt 7
set linetype (4*i+4) lc rgb "red" lw (i == 1 ? 0 : 1) pt 7
}
set linetype cycle 8

plot for [file in filenames] file.".csv" \
 using 1:2 \
 title file \
 smooth csplines, \
 for [file in filenames] file.".csv" \
 u 1:2 with points notitle

С некоторыми простыми файлами данных:


Для некоторых терминалов размер заполненных типов точек зависит от ширины линии, потому что у них есть граница. Это относится ко всем терминалам на базе cairo (pdfcairo, pngcairo, wxt и cairolatex), тогда как другие терминалы, такие как svg, postscript, qt, не показывают этого поведения.

В качестве примера рассмотрим

set linetype 1 lc rgb "red" lw 3 pt 7
set linetype 3 lc rgb "red" lw 1 pt 7

set samples 11
set style function linespoints
plot x lt 1, x + 0.5 lt 3

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

set linetype 1 lc rgb "red" lw 3 pt 7 ps 0.9

Выбор коэффициента масштабирования должен определяться вручную.

licensed under cc by-sa 3.0 with attribution.