Verfasst am: 03.11.2012, 10:21
Titel: PDF-Export eines axes
Hallo,
mit der Version 2011a, die ich testweise nutze, sind Fehler im Export meiner Grafik aufgetaucht. Vorher war die Grafik zentriert und füllte das Dokument aus, jetzt schaut es aus wie im folgenden Upload. Woran liegt das?
Hier auch der entsprechenden Code:
Code:
function uipushtool1_ClickedCallback(hObject, eventdata, handles) % hObject handle to uipushtool1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
nicht verwende, wird meine ganze GUI abgebildet. Daher isoliere ich das axes handle.
Auch das Setzen von 'Position' hat keinerlei Auswirkung. Ich habe denselben Code gerade nochmal testweise mit 2009b laufen lassen. Alles prima...
So allmählich gehen mir die Ideen aus.
...um dir weiterhelfen zu können, müsste man den Code von "isolate_axes" kennen.
Code:
%ISOLATE_AXES Isolate the specified axes in a figure on their own
%
% Examples: % fh = isolate_axes(ah) % fh = isolate_axes(ah, vis)
%
% This function will create a new figure containing the axes specified, and % also their associated legends and colorbars. The axes specified must all % be in the same figure, but they will generally only be a subset of the % axes in the figure.
%
% IN: % ah - An array of axes handles, which must come from the same figure. % vis - A boolean indicating whether the new figure should be visible. % Default: false.
%
% OUT: % fh - The handle of the created figure.
% Copyright (C) Oliver Woodford 2011-2012
% Thank you to Rosella Blatt for reporting a bug to do with axes in GUIs % 16/3/2012 Moved copyfig to its own function. Thanks to Bob Fratantonio % for pointing out that the function is also used in export_fig.m.
function fh = isolate_axes(ah, vis) % Make sure we have an array of handles if ~all(ishandle(ah)) error('ah must be an array of handles');
end % Check that the handles are all for axes, and are all in the same figure
fh = ancestor(ah(1), 'figure');
nAx = numel(ah);
for a = 1:nAx
if ~strcmp(get(ah(a), 'Type'), 'axes') error('All handles must be axes handles.');
end if ~isequal(ancestor(ah(a), 'figure'), fh) error('Axes must all come from the same figure.');
end end % Tag the axes so we can find them in the copy
old_tag = get(ah, 'Tag');
if nAx == 1
old_tag = {old_tag};
end set(ah, 'Tag', 'ObjectToCopy');
% Create a new figure exactly the same as the old one
fh = copyfig(fh); %copyobj(fh, 0);
ifnargin < 2 || ~vis
set(fh, 'Visible', 'off');
end % Reset the axes tags for a = 1:nAx
set(ah(a), 'Tag', old_tag{a});
end % Find the objects to save
ah = findall(fh, 'Tag', 'ObjectToCopy');
ifnumel(ah) ~= nAx
close(fh);
error('Incorrect number of axes found.');
end % Set the axes tags to what they should be for a = 1:nAx
set(ah(a), 'Tag', old_tag{a});
Verfasst am: 04.11.2012, 21:49
Titel: Re: PDF-Export eines axes
Hallo MaFam,
Jetzt kennen wir zwar den Inhalt von ISOLATE_AXES. Aber der darin enthaltene Befehl COPYFIG ist immer noch unbekannt. Bitte erkläre alle relevanten Funktionen, die Du nutzt. Wenn Du Hilfe benötigst, ist es nicht sinnvoll, uns im Dunkeln tappen zu lassen.
Ich frage nochmal:
Sind die Default-Eigenschaften der Figure oder der Axes geändert worden?
Insbesondere diese Eigenschaften sind von Belang:
PaperUnits
PaperOrientation
PaperPosition
PaperPositionMode
PaperSize
PaperType
Die Default-Properties werden z.B. in "matlabrc.m" eingestellt.
verwenden, der Effekt/Fehler (Grafik viel zu klein und unten links) ist derselbe. Die Default-Properties habe ich nicht angerührt, aber ich schaue mir die matlabrc.m heute Abend an.
Mir war das jetzt zu doof, zumal ich die Grafiken dringend brauchte, habe ich jetzt 2011 wieder runtergeschmissen...
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.