Verfasst am: 23.06.2010, 14:44
Titel: Problem beim saven von grafiken per gui
ich lass mir per button eine grafik plotten und will diese dann per save button speichern können... dafür hab ich mir eine funktion geschrieben der ich das axes und das legend object übergebe und welche daraus dann eine figure aufmacht und diese dann speichert...
ich bekomme aber irgendwie einen fehler mit dem legend object und wenn ich dieses weglasse ist die gespeicherte grafik dann leer... hoffe mir kann wer helfen wo das problem liegt
button der den plot generiert
Code:
function run_pushbutton_Callback(hObject, eventdata, handles) % hObject handle to run_pushbutton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
axes(handles.axes1_Overall) title('Risk Overall Correlation','FontSize',12,'FontWeight','b','Color','blue');
%creates a vector from 0 to 10, [0123 . . . 10]
x = 0:10;
%creates a vector [0149 . . . 100]
y = x.^2;
plot(x,y);
handles.legend_plot1_Overall = legend('data');
guidata(hObject, handles);
Tja, mehr Info wäre schön, kannst du die Stelle posten, wo du abspeicherst.
Im Prinzip die Funktionen: RASavePlot und save1_Overall_pushButton_Callback(falls es nicht komplett war)
wäre cool wenn sich einer der gui gurus das mal angucken könnte, ich hab irgendwie die befürchtung das die grafik objecte die ich in den handles übergebe leer sind...
EDIT
ich korrigiere, hab grad mal nachgeguckt mit keyboard
K>> get(handles.axes1_Overall)
ActivePositionProperty = position
ALim = [01]
ALimMode = auto
AmbientLightColor = [111] Box = on
CameraPosition = [55017.3205]
CameraPositionMode = auto
CameraTarget = [5500]
CameraTargetMode = auto
CameraUpVector = [010]
CameraUpVectorMode = auto
CameraViewAngle = [6.60861]
CameraViewAngleMode = auto
CLim = [01]
CLimMode = auto
Color = [111]
CurrentPoint = [(2 by 3)double array]
ColorOrder = [(7 by 3)double array]
DataAspectRatio = [5501]
DataAspectRatioMode = auto
DrawMode = normal
FontAngle = normal
FontName = Helvetica
FontSize = [10]
FontUnits = points
FontWeight = normal
GridLineStyle = :
Layer = bottom
LineStyleOrder = -
LineWidth = [0.5]
MinorGridLineStyle = :
NextPlot = replace
OuterPosition = [-0.05452180.5028830.6067010.499886]
PlotBoxAspectRatio = [111]
PlotBoxAspectRatioMode = auto
Projection = orthographic
Position = [0.02434930.557870.4701930.407407]
TickLength = [0.010.025]
TickDir = in
TickDirMode = auto
TightInset = [0.02078140.01934020.006650040.0295791] Title = [5.00244]
Units = normalized
View = [090]
XColor = [000]
XDir = normal
XGrid = off
XLabel = [6.00244]
XAxisLocation = bottom
XLim = [010]
XLimMode = auto
XMinorGrid = off
XMinorTick = off
XScale = linear
XTick = [(1 by 11)double array]
XTickLabel = [(11 by 2)char array]
XTickLabelMode = auto
XTickMode = auto
YColor = [000]
YDir = normal
YGrid = off
YLabel = [7.00244]
YAxisLocation = left
YLim = [0100]
YLimMode = auto
YMinorGrid = off
YMinorTick = off
YScale = linear
YTick = [(1 by 11)double array]
YTickLabel = [(11 by 3)char array]
YTickLabelMode = auto
YTickMode = auto
ZColor = [000]
ZDir = normal
ZGrid = off
ZLabel = [21.0023] ZLim = [-11]
ZLimMode = auto
ZMinorGrid = off
ZMinorTick = off
ZScale = linear
ZTick = [-101]
ZTickLabel =
ZTickLabelMode = auto
ZTickMode = auto
BeingDeleted = off
ButtonDownFcn =
Children = [4.00293]
Clipping = on
CreateFcn =
DeleteFcn =
BusyAction = queue
HandleVisibility = on
HitTest = on
Interruptible = on
Parent = [2.00232]
Selected = off
SelectionHighlight = on
Tag =
Type = axes UIContextMenu = []
UserData = []
Visible = on
Hallo
das sind viele Tabs, etwas fehlt damit ich es starten kann.
Also ich bin auf Tab->Overall gegangen und dort das Speichern von oberen Axes versucht.
Es kommt zum Fehler, da bei mir wohl LegendObject korruptes handle hat.
Jedenfalls sind folgende Fehler, die du verbessern muss:
in Zeile 34,48 und 54 in RASavePlot immer der gleiche Fehler
lies Kommentare, hier muss du alleine verbessern, am besten mit Debugger durchgehen.
Code:
% axis_units ist normalized % das bedeutet dass die Werte sind zw 0 und 1 set(axesObject2,'Units',axes_units);
% in Zeile 34 übergibst du schon die Werte 15 und 5 % also rutscht dein Axes ins ungewisse, % deshalb leere Graphik set(axesObject2,'Position',[155 axes_pos(3) axes_pos(4)]);
ok ich hab mal die beiden zeilen auskommentiert, jetzt funktioniert zumindest der save... nur ist die grafik jetzt in der figure nur oben links... gibts da ne möglichkeit die auf die ganze fläche zu strecken ?
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.