Удалить границы вокруг участка Matlab - PullRequest
8 голосов
/ 07 февраля 2012

Matlab отображает черную рамку вокруг графика, и я хотел бы удалить его. Я думаю, что я должен использовать что-то вроде:

set(Figure#,'PropertyName',PropertyValue);

Но я не уверен, какое PropertyName или PropertyValue следует использовать ...

Edit:

Я перепробовал все предложения, включая:

set(gca,'box','off');
set(gca,'xcolor','w','ycolor','w','xtick',[],'ytick',[]);
axis off;

Фигура все еще имеет черную границу и выглядит так:

enter image description here

Редактировать 2: Это упрощенный пакет, который воспроизводит черный ящик. Запустите скрипт с именем «runPlot». Вот: http://dl.dropbox.com/u/8058705/plotTest.zip Я не могу понять, почему коробка все еще видна. Это может быть связано со строкой в ​​plotTEC.m

axis([-.65 .6 .25 1.32]) % hardwiring axis length since the coastline runs off of the plot

@ Преследование: если я использую "браузер заговора", я получаю рекурсивную ошибку .... Я не знаком с пакетом печати matlab, но это кажется странным. Кто-нибудь еще получает эту ошибку? Еще раз спасибо, ребята, за ваш совет!

У кого-нибудь есть еще предложения?

Заранее спасибо!

Ответы [ 4 ]

14 голосов
/ 07 февраля 2012

Вы хотите поэкспериментировать со свойствами оси.Некоторые свойства, представляющие интерес.

xcolor  %The color of the x-axis line and the x axis labels
ycolor  %
box     %'on', or 'off' indicating if one or both sides of a plot should have lines
xtick   %Where to place the labels
ytick

Для полностью обнаженного графика используйте:

figure
set(gca,'xcolor','w','ycolor','w','xtick',[],'ytick',[])

Чтобы установить также белый фон фигуры

set(gcf,'color','w')

В зависимости отв вашей конкретной задаче вы можете попробовать свойство 'box', чтобы увидеть, как оно влияет на ваши графики

set(gca,'box','on')
set(gca,'box','off')

Если вы хотите отключить фактические линии графиков, но сохранить метки графиков, тогда яЯ не знаю простого решения.Я думаю, что мне нужно будет удалить оси, как описано выше, а затем вручную добавить метки, используя функцию text.


Редактировать: Как я только что узнал из этого вопроса, Наложение графикаMATLAB вы также можете попробовать

axis off
axis on

Что, я думаю, эквивалентно

set(gca,'visible','off')
set(gca,'visible','on')

Edit 2:

Если ничего не работает, активируйте"браузер сюжета" на вашей фигуре.Используйте «просмотр» -> «браузер заговора».На панели обозревателя снимайте флажки с каждого объекта, пока не выясните, какой объект рисует линии, которые нужно удалить.

Затем дважды щелкните по объекту, который нарушил настройку, чтобы открыть панель «Редактор свойств», и чаще всегоСкорее всего, нажмите «Дополнительные свойства», чтобы просмотреть все возможные свойства этого объекта.Из этого представления вы можете (надеюсь) выяснить, какой объект рисует оскорбительные линии.

После того, как вы выяснили объект и свойство для редактирования, вы, вероятно, сможете выяснить, где в коде этот объект создан,и установите свойство программно.

6 голосов
/ 07 февраля 2012

Попробуйте:

set(gca, 'Box', 'off');
3 голосов
/ 12 июля 2013

Решение для удаления «серого» фона в imagesc

I = imread('imgname.jpg');
[rows columns] = size(I);
posX = 100; posY = 100; %you can set any value for posX and posY - try to keep it on screen
f = figure (1);
imagesc(I);
set(gcf,'Position',[posX posY columns rows]);
set(gca,'units','pixels');
set(gca,'units','normalized','position',[0 0 1 1]);
axis off;
axis tight;

Это позволит сохранить изображение того же размера, что и оригинал, используя imagesc. Ура! * * 1004

0 голосов
/ 12 января 2013

set (gca, «Visible», «off»);

...