Как увеличить участки в GnuPlot - PullRequest
3 голосов
/ 08 января 2012

Я генерирую отображенные 3D-графики, используя следующий файл конфигурации (XRANGE и YRANGE устанавливаются позже)

#!/usr/bin/gnuplot    
reset
set term postscript eps enhanced

set size square
set xlabel "X position"
set ylabel "Y position"

#Have a gradient of colors from blue (low) to red (high)
set pm3d map
set palette rgbformulae 22,13,-31

set xrange [0 : XRANGE]
set yrange [0 : YRANGE]

set style line 1 lw 1

unset key

set dgrid3d 45,45

set hidden3d

splot "data.data" u 1:2:3

Полученное изображение выглядит примерно так

GnuPlot Image

Примечание. Я преобразовал в jpg, чтобы качество было ниже, и поместил рамку вокруг изображения.

Огромное количество места теряется сверху и снизу. Это не проблема, пока я не вставлю изображение в документ LaTex, после чего оно будет выглядеть так (снова документ pdf преобразован в jpg изображение)

enter image description here

Изображение справа также создается с помощью GnuPlot, но оно немного больше (как видно из границы, которую я нарисовал вокруг двух верхних изображений). Причина этого в том, что GnuPlot дополняет 3D-график верхним и нижним пробелами. Как я могу удалить это без необходимости вручную редактировать все 50+ графиков, которые у меня есть?

Ответы [ 3 ]

4 голосов
/ 08 января 2012

Для этого есть два решения: одно ненадежное, другое взломанное.

  1. Используя GnuPlot, настройки поля можно использовать для указания расстояний от соответствующих полей. Например, установка lmargin 0 и bmargin 0 существенно отталкивает оси от страницы. Аналогичные значения могут быть присвоены tmargin и rmargin для растягивания графика. Хотя это сработало для 2D-графиков, оно не сработало для 3D-графиков (я подозреваю, что это связано с тем, что я установил график в виде квадрата).

  2. Если для графиков задан размер квадрата, Gnuplot по-прежнему рассчитывает для всего экрана . Чтобы изменить это, можно напрямую изменить файл eps, найдя строку типа %%BoundingBox: 50 50 410 302 и изменив 410 на что-то меньшее. В качестве альтернативы, и это то, что я сделал, вы можете запустить eps2eps in.eps out.eps, и он обрезает его для вас. Просто убедитесь, что in.eps не тот же файл, что и out.eps, иначе он не будет работать.

2 голосов
/ 09 января 2012

Впоследствии я также обрезаю ограничивающую рамку, так как ненавижу играть с полями в gnuplot.Я понял, что каким-то образом eps2eps действительно настраивает ограничивающую рамку, но он также преобразует текст (метки и т. Д.) В пиксельную графику?команда, которую я использую:

epstool --copy --bbox in.eps out.eps

1 голос
/ 24 сентября 2014

Используйте аргумент <scale> в set view, это увеличит график без изменения размера текста или позиции заголовка.

В вашем случае, поскольку вы используете представление map, вам необходимо:

set view 180,0,1.5

, где 180,0 эквивалентно map представлению, а 1.5 - коэффициент масштабирования.

...