Как я могу автоматически изменить размер фигуры, чтобы она плотно прилегала к сюжету?

Я использую команду axis tight, а затем копирую рисунок в слово. Проблема в том, что сюжет тугой, а сама фигура прямоугольная, и просто много места тратится только на рамки вокруг.

Итак, я копирую полную фигуру в Paint, вырезаю ее там только для сюжета, а затем вставляю в Word, что неинтересно, поскольку у меня их много. Любые идеи?

Иллюстрация скопированного рисунка:

https://docs.google.com/file/d/0BwE-Ba3ePCwOb0VrSnVZcG5YMlE/edit?usp=sharing


person Roman    schedule 17.07.2013    source источник
comment
Можете также дать скриншот, как выглядит оригинальное окно?   -  person bdecaf    schedule 17.07.2013
comment
убедитесь, что docs.google.com/file/d/0BwE-Ba3ePCwOekRvMUF3dmVsdGc /   -  person Roman    schedule 17.07.2013
comment
забавно, как это делается. Может быть, это связано с краской или что-то в этом роде. Какие именно шаги вы делаете, когда копируете его в краску?   -  person bdecaf    schedule 18.07.2013
comment
о, я думаю, что я не правильно объяснил, это не краска делает это, а сама команда натяжения оси. Я использую краску только для того, чтобы вырезать саму ось из огромной фигуры, которую печатает Matlab.   -  person Roman    schedule 18.07.2013
comment
То, что делает axis tight в вашем случае, очень нестандартно. Он должен удерживать axes на месте и делать шкалу так, чтобы линии заполняли ось. В вашем случае кажется, что линии сохраняются, а оси уменьшаются. Может быть, у вас есть какие-то обратные вызовы, добавленные к вашей фигуре или ее дочерним элементам?   -  person bdecaf    schedule 18.07.2013
comment
нет, не в этом случае. В любом случае, спасибо за помощь, я думаю, это вырезано и вставлено для меня ...   -  person Roman    schedule 18.07.2013
comment
@bdecaf, я тоже это заметил, поэтому попытался воспроизвести его пример, и я получаю то же самое, если использую axis tight и axis equal для своей фигуры. Роман, подтвердите, так ли это у вас?   -  person Hoki    schedule 24.07.2020


Ответы (3)


Попробуйте использовать свойства Position оси напрямую, чтобы подогнать ее под фигуру:

>> set( gca, 'Units', 'normalized', 'Position', [0 0 1 1] );
person Shai    schedule 17.07.2013
comment
это по-прежнему делает окна фигур огромными по сравнению с сюжетом. У меня получается прямоугольный участок ,в квадрате огромная фигура - person Roman; 17.07.2013
comment
Пожалуйста, разместите несколько изображений, демонстрирующих проблему. трудно ответить на ваш вопрос, не визуализируя проблему. - person Shai; 17.07.2013
comment
@Roman Кстати, у вас есть инструмент для обрезки изображений, встроенный в MS Word, поэтому вам не нужно использовать Paint. - person Shai; 17.07.2013
comment
я пытался его загрузить, но в правилах форума что-то написано, что я выложил слишком мало для загрузки изображения, могу ли я отправить его вам по почте? - person Roman; 17.07.2013
comment
извините, не знаю как это сделать - person Roman; 17.07.2013
comment
попробуйте загрузить на хост (например, tinypic.com), а затем разместите ссылку на загруженное изображение. - person Shai; 17.07.2013
comment
теперь я понимаю, что вы имеете в виду... docs.google.com /file/d/0BwE-Ba3ePCwOb0VrSnVZcG5YMlE/ , серый цвет вокруг основного графика соответствует размеру рисунка - person Roman; 17.07.2013
comment
Вы должны убедиться, что gca действительно относится к оси графика. Может быть, это одна проблема. также get(gca,'TightInset') даст вам минимальную ширину, которая вам понадобится для метки осей. - person bdecaf; 17.07.2013

Я предполагаю здесь. Но я считаю, что вы берете цифру из какого-то графического интерфейса.

Я бы использовал copyobj для переноса оси на другую пустую фигуру. Для этого вы можете установить все параметры по своему усмотрению.

person bdecaf    schedule 17.07.2013

У меня была та же проблема, и изменение Position или axis tight у меня тоже не сработало, поэтому я обрезаю свои изображения, используя ИзображениеJ. (свободно)

Обычно у меня не так много изображений, которые нужно обрезать одновременно, поэтому я делаю их по отдельности, но я думаю, что вы можете обрезать их до заданного размера с помощью макроса ImageJ. Это будет «Процесс»> «Пакетная обработка»> «Макрос»…, а затем в «Добавить код макроса» выберите «Обрезать» и укажите положение и размеры прямоугольника. (По крайней мере, в ImageJ v1.46r)

Я знаю, что это не совсем то, о чем вы просили, но это обходной путь. Если у кого-то еще есть решение, полностью основанное на Matlab, я весь внимателен.

person BLHaas    schedule 17.07.2013