2013-09-11 3 views
1

Я использую Perl-скрипт, чтобы сделать несколько графиков через конвейер heredoc в Gnuplot (версия 4.6 patchlevel 3). У меня есть некоторые проблемы для определения меток желаемым образом. Я хочу:Label-Style in Gnuplot

  • включает переменные в наклейке с определением формата (sprintf)
  • использовать различные этикетки для различных участков
  • показать метки в поле и показать их перед

Не знаю, как определить format specifiers, и я также посмотрел на label docu1 [ссылка неверна) label docu2. This post показывает сложный способ определения поля и должен быть установлен для каждой метки.

Извините за размещение не только одного точного вопроса, но все они касаются стиля маркировки.

Мои Gnuplot тесты до сих пор:

set style line 1 lt 1 lw 1 lc rgb "#FF4500" 
set label 1 'Var1 = sprintf("%5.3f",$Var1)' at graph 0.8, graph 0.95 front font 'Times-Roman,10' 
plot "file.dat" u 1:2 ls 1 

Мои проблемы:

  • Sprintf не интерпретированные на выходе.
  • Я не могу использовать разные ярлыки, как я использую разные ls (linestyle).
  • Боксерский фрейм этикетки должен быть определен для каждой отдельной этикетки сложным образом.

Thx заранее!

ответ

1

Хорошо, давайте посмотрим, как получить вещи сортируются:

Использование sprintf работает следующим образом:

set label 1 sprintf("Var1 = %5.3f",Var1) at ... 

или

set label 1 'Var1 = '.sprintf("%5.3f", Var1) at ... 

в штучной упаковке этикетки поддерживаются только в текущей разрабатываемой версии 4,7. Вы можете злоупотреблять ключом, чтобы получить этикетку в коробке (если она вам не нужна):

set key opaque box samplen -1 at graph 0.8, graph 0.95 font 'Times-Roman,10' 
plot 'file.dat' using 1:2 ls 1 title sprintf('Var1 = %5.3f', Var1) 
+0

Thx Christoph. Глупая ошибка со мной с «sprintf». К сожалению, мне нужен ключ, поэтому я не могу его использовать. И действительно ли мне нужно «отменить ярлык» после каждого сюжета и переопределить его (потому что мне нужны разные метки для каждого сюжета)? Я хотел бы придерживаться определения, как я делаю с 'set style line X' для X-графиков. Разве это не возможно для ярлыков и других функций? – EverythingRightPlace

+0

@ bashophil Я действительно не понимаю, что вам нужно. Если вы определяете очень длинную метку, вы можете позже заменить текст: 'set label 1 'first' на графе 0.8, график 0.8 tc rgb 'green'; график sin (x); установить метку 1 'second'; replot'. Смотрите, что «вторая» метка также зеленая и в том же положении. В противном случае вам может понадобиться играть с помощью 'set macro' или' evaluation'. Возможно, вы можете отредактировать свой вопрос, чтобы показать его более подробно (используя только функции вместо данных). – Christoph

+0

Привет Кристоф. Thx за помощь. Мне нравится определение linestyle, поэтому я могу просто назвать определенный стиль, например. 'ls 1', когда я устанавливаю команду plot. Я думал, что это возможно возможно с чем-то вроде 'set style label 1' и использовать это позже. Тем не менее, большое спасибо, я могу работать с этим :) – EverythingRightPlace