WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Maximal Anzahl von "objects" in "figure"

 

DanielDerMessi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2014, 09:48     Titel: Maximal Anzahl von "objects" in "figure"
  Antworten mit Zitat      
Hallo wehrte Jünger des großen MatLab,

für eine spezielles Mapping meiner Daten bin ich gezwungen eine für mich angepasste Darstellung zu programmieren. Hierzu erzeuge ich zunächst eine "figure", welche ich mittels einer for-Schleife mit kreisrunden Ellipsen fülle. Diese koloriere ich auf Grundlage der Daten mit einer Farbe. Weiter "überschreibe" ich jede der positionierten Ellipsen mit einer Textbox, welche mir die Koordinate der jeweiligen Ellipse anzeigt. Um nun mit der Einfärbung meiner selber gebastelten Map etwas anfangen zu können, füge ich zum Schluss eine "colorbar" ein.

Zum Problem:
Verwende ich keine colorbar, dann ist alles okay und ich kann die for-Schleife ca. 600 mal durchlaufen lassen. Das Erzeugen des Map benötigt zwar eine menge Zeit, aber es sieht aus wie gewünscht.
Füge ich nach der for-Schleife nun die "colorbar" ein, dann zerschießt mir diese Aktion mein erstelltes Map. Während die Ellipsen noch an Ort und Stelle sind, haben sich die "Textboxen" in ihrer Zahl vervielfacht und sind in ihren Positionen verschoben.

Beobachtung:
Wenn ich die for-Schleife jedoch weniger als 300 mal durchlaufe, dann funktioniert auch das nachträgliche "Einrichten" der colorbar, wie unten im Code gezeigt.

Hat jemand von euch ein Vorschlag, wie ich das Problem lösen kann?

Code:

Fig01 = figure;
set(Fig01,'Position',[100 50 1100 1000]);
aspRatio=1000/1100;

ColMap = colormap (Fig01,'jet');

dx = 0.865/47;
dy = 0.87/27;

for i=1:size(xy.x,1)
    x=(0.05+xy.x(i)*dx-dx/2)*aspRatio;
    y=0.95-xy.y(i)*dy-dy/2;
   

    for j=1:size(OffSetBinIndex,2)
    if  (OffSetBinIndex(j))< z(i) && z(i) < (OffSetBinIndex(j)+deltaBin)
     annotation(Fig01,'ellipse',[x y 0.035*aspRatio 0.035],'FaceColor',ColMap(j,:));
       
    end
   
    end


    annotation(Fig01,'textbox',...
    [x y 0.035*aspRatio 0.035],...
    'String',{[num2str(xy.x(i)) '/' num2str(xy.y(i))]},...
    'HorizontalAlignment','center',...
    'VerticalAlignment','middle',...
    'FontSize',8,...
    'FitBoxToText','off',...
    'LineStyle','none');
end

% Create axes
axes1 = axes('Visible','off','Parent',Fig01,...
    'Position',[0.85 0.05 0.1 0.9],...
    'CLim',[3000 3400]);

% Create colorbar
colorbar('peer',axes1,[0.9 0.05 0.05 0.9]);
 


DanielDerMessi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2014, 16:38     Titel: Maximal Anzahl von "objects" in "figure"
  Antworten mit Zitat      
ich war wirklich seit Tagen schon am suchen, als ich heute Morgen die Frage an das hiesige Forum stellte. Durch Zufall habe ich nun die folgende Lösung gefunden.

Das ganze liegt am Rendern der "figure" (Fig01). Das Rendern wird per "default" mit 'OpenGL' erledigt. Das ganze scheint bei mir zu versagen, wenn die for-Schleife den Zähler i 300 überschreitet. Lösung ist also das wählen einer anderen Renderroutine (set(Fig01,'Renderer','painters')Wink.

http://www.mathworks.de/de/help/matlab/ref/figure_props.html

Code:

Fig01 = figure;
set(Fig01,'Position',[100 50 1100 1000]);
set(Fig01,'Renderer','painters');
 
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.