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

2 Datensätze in einem Plot vergleichen

 

camoesas
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 13.04.10
Wohnort: München
Version: R2013a
     Beitrag Verfasst am: 06.12.2012, 12:00     Titel: 2 Datensätze in einem Plot vergleichen
  Antworten mit Zitat      
Servus,

Ich habe 2 Datensätze die ich in einem Contourplot vergleichen möchte. Die Datensätze sind symmetrisch zur Y- Achse. Deswegen will ich auf der linken Seite den 1. Datensatz haben und auf der rechten Seite den 2. Datensatz.
Kann ich das in der Figure Umgebung irgendwie bewerkstelligen oder muss ich da auf Datenebene rumfummeln und die beiden Datensätze irgendwie verschmelzen??
Ich hoffe es ist klar geworden, was ich will? Hat irgendwer eine Idee?

Danke VG
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 06.12.2012, 14:04     Titel:
  Antworten mit Zitat      
1. maximalen Wert in Datensatz 1 (= linke Figure im Plot) suchen
maximalen Wert in Datensatz 2 (= rechte Figure im Plot) suchen
2. Verschiebung = (Maximalwert der beiden Datensatzmaxima) + (frei gewählter Schönheitsabstand)
3. plotten in einem plot, mit
((WerteDatensatz1 - Verschiebung),y)
((WerteDatensatz2 + Verschiebung),y)
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
camoesas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 13.04.10
Wohnort: München
Version: R2013a
     Beitrag Verfasst am: 07.12.2012, 09:52     Titel:
  Antworten mit Zitat      
HI Martina,
Jetzt habe ich echt lange gebraucht zu kapieren, was du mir sagen willst und mein, dass ich jetzt dahinter gekommen bin. Ich habe vergessen zu sagen, dass ich contourplots machen will und nicht kurven. Wenn du dich auf 2D Kurven beziehst glaube ich deinen Vorschlag verstanden zu haben. Razz
Ich will aber was ähnliches machen wie in dem anhang:
Ich habe links und rechts (oben / unten) 2 unterschiedliche datensätze (xq,yq,vq) und die will ich wie in dem anhang zusammenlegen. Ich hoffe das ist deutlicher. Tschuldige die Ungenauigkeit am Anfang.

VG

Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  156.82 KB
 Heruntergeladen:  641 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
camoesas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 13.04.10
Wohnort: München
Version: R2013a
     Beitrag Verfasst am: 17.12.2012, 09:58     Titel:
  Antworten mit Zitat      
push! geht das nicht irgendwie? oder ist nicht klar was ich meine?

VG
Private Nachricht senden Benutzer-Profile anzeigen
 
keywee
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 64
Anmeldedatum: 29.11.12
Wohnort: Berlin
Version: R2012a
     Beitrag Verfasst am: 17.12.2012, 10:08     Titel:
  Antworten mit Zitat      
Ist es nicht am einfachsten einfach das vorzeichen deiner x koordinaten zu drehen um das ganze zu spiegeln?
Private Nachricht senden Benutzer-Profile anzeigen
 
camoesas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 13.04.10
Wohnort: München
Version: R2013a
     Beitrag Verfasst am: 17.12.2012, 11:13     Titel:
  Antworten mit Zitat      
ja natürlich, das ist nicht das Problem aber dann habe ich immer noch 2 unterschiedliche Datensätze die ich manuell mit großem Aufwand irgendwie verschachteln müsste.
Private Nachricht senden Benutzer-Profile anzeigen
 
keywee
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 64
Anmeldedatum: 29.11.12
Wohnort: Berlin
Version: R2012a
     Beitrag Verfasst am: 17.12.2012, 17:02     Titel:
  Antworten mit Zitat      
aber du kannst doch die achsenlimits festlegen und mit der hold on funktion den zweiten datensatz direkt neben den ersten zeichnen oder auch mit subplots arbeiten.

Code:
clc, clear all

M = randn(10,10);
M2 = fliplr(M)
subplot(1,2,1)
contour(M)
subplot(1,2,2)
contour(M2)


was spricht gegen diesen ansatz? teste mal und sag ob es so ginge

Zuletzt bearbeitet von keywee am 17.12.2012, 17:20, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
camoesas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 13.04.10
Wohnort: München
Version: R2013a
     Beitrag Verfasst am: 17.12.2012, 17:14     Titel:
  Antworten mit Zitat      
Hey keywee,

Danke für deine Antwort. So habe ich mir das auch schon mal überlegt aber es hat irgendwie nicht geklappt. Wenn ich hold gemacht habe, hat er den neuen Plot in eine neue Figure gepackt. Bist du sicher, dass das geht? Ich probiers nochmal und berichte.

VG
Private Nachricht senden Benutzer-Profile anzeigen
 
camoesas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 13.04.10
Wohnort: München
Version: R2013a
     Beitrag Verfasst am: 18.12.2012, 16:21     Titel:
  Antworten mit Zitat      
HI Keywee,

Danke für die Idee ich probier das morgen mal aus, heute komme ich an keine Lizenzen...


Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
camoesas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 13.04.10
Wohnort: München
Version: R2013a
     Beitrag Verfasst am: 20.12.2012, 15:02     Titel:
  Antworten mit Zitat      
HI Keywee,

ich habe deinen Ansatz ausprobiert aber leider funktioniert das bei mir nicht. Wenn ichs genau so ausführe wie du geschrieben hast, dann habe ich nur den zweiten contour plot auf der rechten seite und die linke ist leer. Ich habs auch mit einem hold dazwischen probiert, aber das bringt irgendwie nix.
Ich werde mich mal in die subplot funktion einlesen.

Aber ist das überhaupt möglich so wie ich das will. In dem beispiel weiter oben mit durchgängiger x-Achse?!

VG Frohe Weihnachten

Simon
Private Nachricht senden Benutzer-Profile anzeigen
 
keywee
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 64
Anmeldedatum: 29.11.12
Wohnort: Berlin
Version: R2012a
     Beitrag Verfasst am: 21.12.2012, 10:09     Titel:
  Antworten mit Zitat      
die subplot funktion hab ich doch oben gepostet ist auch das beste was ich hinbekommen habe. eine zweite moeglichkeit ist es die eine matrix zu spiegeln und dann mit der anderen zu verbinden hier nochmal grundlegend beide ansaetze:

Code:
B = peaks(10);
B1=fliplr(B)
B2=horzcat(B,B1)

[C,h] = contourf(B2,10)
clabel(C,h)
title({'Experiment X','details:'})
axis image

set(gca,'XTickLabel',[-9:2:9]) %%% achse musst du so veraendern das du die null in der mitte hast und dann kannst du mit dem annotationbefehl zum beispiel einen pfeil als gradienten einzeichnen!!!
colormap(flipud(bone))


oder eben mit subplots die variante, welche wie ich finde besser aussieht:

Code:
clc, clear all
B = peaks(100);



ax(1)=subplot(1,2,1)
[C,h] = contourf(B,10);
set(gca, 'XDir', 'reverse')
clabel(C,h)
title({'Experiment 1','details:'})
axis image


ax(2)=subplot(1,2,2)
[C,h] =contourf(fliplr(B),10);
set(gca,'YAxisLocation', 'right');
clabel(C,h)
title({'Experiment 2','details:'})
axis image

 
  colormap(flipud(bone))
 


oder anbei möglichkeit drei:

Contourplot.rar
 Beschreibung:

Download
 Dateiname:  Contourplot.rar
 Dateigröße:  93.23 KB
 Heruntergeladen:  351 mal


Zuletzt bearbeitet von keywee am 21.12.2012, 10:49, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
keywee
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 64
Anmeldedatum: 29.11.12
Wohnort: Berlin
Version: R2012a
     Beitrag Verfasst am: 21.12.2012, 10:13     Titel:
  Antworten mit Zitat      
es ist auch interessant das der plot immer bei 1,1 beginnt. es werden also immer die erste spalte und die erste zeile verschluckt! da mich das ganze auch interessiert waere es schoen wenn du deine finale version vll mal postest!

lg kiwi


frohes fest!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
camoesas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 13.04.10
Wohnort: München
Version: R2013a
     Beitrag Verfasst am: 21.12.2012, 15:49     Titel:
  Antworten mit Zitat      
HI Keywee,

Ich habs jetzt mit dem Subplots hinbekommen, aber ohne deine wichtigen Tipps hät ichs nicht geschafft. Wobei Tipp untertrieben ist, du hast ja kräftig mit dem Zaunpfahl gewunken...

Hier mein Code:

Code:
function plots_geg_function(linksYq,linksZq,linksVq,linksTitel,rechtsYq,rechtsZq,rechtsVq,rechtsTitel,titelZusatz)

% funktion plottet die beiden teile mit subplots, eins links eins rechts

figure1 = figure;


axes1 = axes('Parent',figure1,'Position',[0.13 0.08 0.37 0.84],'fontsize',12);
% box(axes1,'on');
[C,h] = contourf(linksYq,linksZq,linksVq,'LineWidth',1.5);
axis([-1 0 0.03 1.8])
title(linksTitel,'fontsize',14);
hold;

axes2 = axes('Parent',figure1,'Position',[0.5 0.08 0.37 0.84],'fontsize',12);
% box(axes2,'on');
[C,h] = contourf(rechtsYq,rechtsZq,rechtsVq,'LineWidth',1.5);
axis([0 1 0.03 1.8])
title(rechtsTitel,'fontsize',14);
set(gca,'YAxisLocation','right');
colormap((bone))

titelpng = strcat('Cp_Nachlauf_',titelZusatz,'_',linksTitel,'_',rechtsTitel,'.png');
print(figure(1),'-dpng','-r600',titelpng);

close all;
end
 


Bei mir wird nur die erste Zeile geschluckt, die erste Spalte ist aber da. Kann vielleicht irgendwas mit der Interpolation zu tun haben. Ist aber trotzdem komisch. Bei mir siehts jetzt so aus -> Anhang.


Und zusätzlich habe ich noch einige coole Sachen aus deinen Posts gelernt. Danke nochmal und frohe Weihnachten.

VG Simon

nachlauf_uni-simu.png
 Beschreibung:

Download
 Dateiname:  nachlauf_uni-simu.png
 Dateigröße:  526.92 KB
 Heruntergeladen:  603 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
keywee
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 64
Anmeldedatum: 29.11.12
Wohnort: Berlin
Version: R2012a
     Beitrag Verfasst am: 22.12.2012, 18:03     Titel:
  Antworten mit Zitat      
hast du noch einen datensatz zum anhaengen damit ich mir das als fertiges beispiel speichern kann! dir auch frohe fest.

LG Kiwi
Private Nachricht senden Benutzer-Profile anzeigen
 
camoesas
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 13.04.10
Wohnort: München
Version: R2013a
     Beitrag Verfasst am: 07.01.2013, 16:12     Titel:
  Antworten mit Zitat      
Servus,

was willst du den genau haben? den code? die daten als *.mat?
Jetzt habe ich aber noch ein Problem: Wenn ich eine Legende einfügen will, dann wird der letzte Plot also der Rechte entsprechend verkleinert und die beiden Plots sind dann unterschiedlich groß!? Kann ich das irgendwie eleganter lösen als an der Größe rumzufummeln?

VG
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.