gnuplot: рисовать сетку за точками сюжета и тики перед - PullRequest
0 голосов
/ 20 октября 2018

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

Рассмотрим данные этого примера с именем "t_data":

   0   1
   1   3
   1.8 0
   3   5
   4   0
   5   2

и этот скрипт:

reset session

set terminal pdfcairo enhanced color font "Arial,10" size 7.5cm,6cm

set output "t_graph.pdf"

set style line 1 lc rgb "#ff0000" lw 1 pt 5 ps 0.5 pi -1
set pointintervalbox 0.7

unset key
unset title
unset border

set border 3
set xrange [0:5]
set yrange [0:*]

set xtics border nomirror out font "Arial,9"
set ytics border nomirror out font "Arial,9"

set mxtics 5
set mytics 5

set xlabel "x"
set ylabel "y"

set grid xtics mxtics ytics back lt -1 lw 1 lc rgb "#808080", lt -1 lw 1 lc rgb "#808080" dt 2
set tics front

plot "t_data" u 1:2 w lp ls 1

set out

Чтобы получить метки передточки данных в x=0, 2 и 4, я прочитал, например, здесь ( gnuplot: кривая области заполнения, сохраняющая отметки сверху ), что команда set tics front должна предшествовать команде plot,как видно из сценария.Однако это, кажется, переопределяет параметр back, который я дал для команды set grid, т. Е. Сетка также рисуется поверх моего графика (там даже написано Grid drawn at front, когда я запускаю show grid после выполнения сценария выше),

Когда я чередую команды set grid и set tics, и сетка, и тики рисуются за точками графика, что, таким образом, частично скрывает основные тиковые метки и второстепенные тиковые метки (обратите внимание,что ось все еще рисуется поверх точек графика в любом случае).

Может ли кто-нибудь помочь мне, разобраться, как расположить сетку за точками графика и перед ними тиковыми метками (я думаю, что этот способ построения графиков имеет больше смысла, но на самом деле это просто ИМХО)?Мне также очень интересно узнать, почему команды set tics и set grid, по-видимому, влияют друг на друга.

Я использую версию gnuplot 5.0 patchlevel 0 в OpenSUSE 42.3 LTS, если это важно.

1 Ответ

0 голосов
/ 22 октября 2018

Я думаю, что это было исправлено в 5.0.2 версии Gnuplot.Соответствующий Список изменений гласит:

2015-11-09 Ethan A Merritt

  • src / axis.c src / axis.hsrc / graphics.c src / save.c src / set.c src / show.c src / unset.c: в документации сказано, что «set tics front или back контролирует, расположены ли тики сзади или спередиэлементов сюжета ".Это было своего рода правдой, но это было сделано путем перемещения всей сетки вместе с метками, чтобы вы не могли полностью разместить метки и метки перед линиями сетки.Разделите эти две операции, чтобы set tics {front|back} делал только то, что задокументировано.Ошибка # 1704

  • src / axis.c (gen_tics): «set {*} tics rangelimit» применяется к мелким тикам, а также к основным тикам.Ошибка # 1705

...