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

Fehlerbalken und nur bestimmte x-Ticks entfernen

 

p.nietnagel
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 19.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2011, 11:59     Titel: Fehlerbalken und nur bestimmte x-Ticks entfernen
  Antworten mit Zitat      
Hallo,

ich möchte eine Abbildung publikationstauglich aufhübschen und hab 2 Probleme:
1) x-Ticks: Ich brauche nicht alle davon, sondern würde gern den dritten und den sechsten entfernen. Ich hab das probiert, in dem ich einfach ein flaches weißes Viereck darüber geplottet habe. Aber das ist irgendwie keine wirklich zufriedenstellende Lösung.
2) Fehlerbalken: laut MATLAB Dokumentation kann man da ja darauf zugreifen. Aber bei mir geht das irgendwie nicht. Ich vermute mal, weil ich explizit die xx udn xy und yx und yy Werte (nennt man die so?) angegeben habe. So wie das jetzt aussieht, kann man das natürlich nicht lassen. Ich möchte gern die Liniendicke der Fehlerbalken so dick haben (1.25), wie die Liniendicke der eigentlichen Graphen.

Hat jemand einen heißen Tipp?

Hier das (hoffentlich nicht zu ausführliche) Minimalbeispiel:

Code:

Seiten = {'links', 'rechts'};
xAchse = {'a','b','','a','b','','a','b'};

a = [1.13 0.86 0.94];
b = [1.14 1.00 1.14];
c = [0.6 0.52 0.64];
d = [0.52 0.51 0.53];

SEa = [0.19 0.22 0.23];
SEb = [0.20 0.19 0.18];
SEc = [0.20 0.21 0.22];
SEd = [0.18 0.21 0.17];

abcd = zeros(2,2,3);
abcd(1,1,:)=a;
abcd(2,1,:)=b;
abcd(1,2,:)=c;
abcd(2,2,:)=d;

SEabcd = zeros(2,2,3);
SEabcd(1,1,:)=SEa;
SEabcd(2,1,:)=SEb;
SEabcd(1,2,:)=SEc;
SEabcd(2,2,:)=SEd;

fig = figure;
plot([0.5 1],[abcd(1,1,1),abcd(1,2,1)],'LineWidth',1.25,'Marker','o','MarkerSize',7.5, 'Linestyle', '-', 'Color', 'k', 'MarkerFaceColor','k', 'MarkerEdgeColor', 'k');
%he=errorbar([0.5 1],[abcd(1,1,1),abcd(1,2,1)],[0.5 1],[SEabcd(1,1,1),SEabcd(1,2,1)],'k');
hold on
errorbar([0.5 1],[abcd(1,1,1),abcd(1,2,1)],[0.5 1],[SEabcd(1,1,1),SEabcd(1,2,1)],'k');
plot([0.5 1],[abcd(1,1,1),abcd(1,2,1)],'LineWidth',1.25,'Marker','o','MarkerSize',7.5, 'Linestyle', '-', 'Color', 'k', 'MarkerFaceColor','k', 'MarkerEdgeColor', 'k');
%set(he(2),'LineWidth',1.25)
hold on
plot([0.5 1],[abcd(2,1,1),abcd(2,2,1)],'LineWidth',1.25,'Marker','s','MarkerSize',7.5, 'Linestyle', '-', 'Color', [0.5 0.5 0.5], 'MarkerFaceColor',[0.5 0.5 0.5], 'MarkerEdgeColor', [0.5 0.5 0.5]);
errorbar([0.5 1],[abcd(2,1,1),abcd(2,2,1)],[0.5 1],[SEabcd(2,1,1),SEabcd(2,2,1)],'Color', [0.5 0.5 0.5]);
plot([0.5 1],[abcd(2,1,1),abcd(2,2,1)],'LineWidth',1.25,'Marker','s','MarkerSize',7.5, 'Linestyle', '-', 'Color', [0.5 0.5 0.5], 'MarkerFaceColor',[0.5 0.5 0.5], 'MarkerEdgeColor', [0.5 0.5 0.5]);
hold on
plot([2 2.5],[abcd(1,1,2),abcd(1,2,2)],'LineWidth',1.25,'Marker','o','MarkerSize',7.5, 'Linestyle', '-', 'Color', 'k', 'MarkerFaceColor','k', 'MarkerEdgeColor', 'k');
errorbar([2 2.5],[abcd(1,1,2),abcd(1,2,2)], [SEabcd(1,1,2),SEabcd(1,2,2)],'k');
plot([2 2.5],[abcd(1,1,2),abcd(1,2,2)],'LineWidth',1.25,'Marker','o','MarkerSize',7.5, 'Linestyle', '-', 'Color', 'k', 'MarkerFaceColor','k', 'MarkerEdgeColor', 'k');
hold on
plot([2 2.5],[abcd(2,1,2),abcd(2,2,2)],'LineWidth',1.25,'Marker','s','MarkerSize',7.5, 'Linestyle', '-', 'Color', [0.5 0.5 0.5], 'MarkerFaceColor',[0.5 0.5 0.5], 'MarkerEdgeColor', [0.5 0.5 0.5]);
errorbar([2 2.5],[abcd(2,1,2),abcd(2,2,2)],[SEabcd(2,1,2),SEabcd(2,2,2)],'Color', [0.5 0.5 0.5]);
plot([2 2.5],[abcd(2,1,2),abcd(2,2,2)],'LineWidth',1.25,'Marker','s','MarkerSize',7.5, 'Linestyle', '-', 'Color', [0.5 0.5 0.5], 'MarkerFaceColor',[0.5 0.5 0.5], 'MarkerEdgeColor', [0.5 0.5 0.5]);
hold on
plot([3.5 4],[abcd(1,1,3),abcd(1,2,3)],'LineWidth',1.25,'Marker','o','MarkerSize',7.5, 'Linestyle', '-', 'Color', 'k', 'MarkerFaceColor','k', 'MarkerEdgeColor', 'k');
errorbar([3.5 4],[abcd(1,1,3),abcd(1,2,3)], [SEabcd(1,1,3),SEabcd(1,2,3)],'k');
plot([3.5 4],[abcd(1,1,3),abcd(1,2,3)],'LineWidth',1.25,'Marker','o','MarkerSize',7.5, 'Linestyle', '-', 'Color', 'k', 'MarkerFaceColor','k', 'MarkerEdgeColor', 'k');
hold on
plot([3.5 4],[abcd(2,1,3),abcd(2,2,3)],'LineWidth',1.25,'Marker','s','MarkerSize',7.5, 'Linestyle', '-', 'Color', [0.5 0.5 0.5], 'MarkerFaceColor',[0.5 0.5 0.5], 'MarkerEdgeColor', [0.5 0.5 0.5]);
errorbar([3.5 4],[abcd(2,1,3),abcd(2,2,3)],[SEabcd(2,1,3),SEabcd(2,2,3)],'Color', [0.5 0.5 0.5]);
plot([3.5 4],[abcd(2,1,3),abcd(2,2,3)],'LineWidth',1.25,'Marker','s','MarkerSize',7.5, 'Linestyle', '-', 'Color', [0.5 0.5 0.5], 'MarkerFaceColor',[0.5 0.5 0.5], 'MarkerEdgeColor', [0.5 0.5 0.5]);
axis([0 4.5 -1 1.90]);
hl=legend(Seiten);
set(hl,'FontSize',16, 'Color', 'none', 'Box', 'off', 'Location','SouthEast');
xl = xlabel('xAchse');
yl = ylabel(['arbitrary unit']);
set(xl,'FontSize',18);
set(yl,'FontSize',18, 'FontName', 'Arial');
set(gca,'XTick',[0.5:0.5:4])
set(gca,'YTick',-1:.2:1.8)
set(gca,'XTickLabel',xAchse,'Fontsize',13);
 


Vielen Dank im Voraus für Hilfe!

Grüße,
p.nietnagel
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 06.04.2011, 21:31     Titel: Re: Fehlerbalken und nur bestimmte x-Ticks entfernen
  Antworten mit Zitat      
Hallo p.nietnagel,

Zitat:
1) x-Ticks: Ich brauche nicht alle davon, sondern würde gern den dritten und den sechsten entfernen.

Ein Beispiel:
Code:
AxesH = axes;
plot(1:10);
XTicks = get(AxesH, 'XTicks');
XTicks([3, 6]) = [];
set(AxesH, 'XTicks', 'XTicks);

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
p.nietnagel
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 19.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2011, 11:23     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke für Deine Antwort. Es funktioniert!
Der Vollständigkeit halber:
Code:

AxesH = axes;
plot(1:10);
XTicks = get(AxesH, 'XTick');
XTicks([3, 6]) = [];
set(AxesH, 'XTick', XTicks);
 


Da war ein Hochkomma zuviel. Und 'XTick' und 'XTicks' durcheinandergebracht.

Hat jemand noch eine Idee hinsichtlich meiner FRage mit den Fehlerbalken? Das workaround (auf das ich lieber verzichten würde) wäre ja, die Fehlerbalken manuell als ganz normale Graphen einzuzeichnen. Ist halt sehr unelegant.....


Danke im Voraus!


Schöne Grüße,
p.nietnagel
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.04.2011, 23:31     Titel:
  Antworten mit Zitat      
Hallo Peter,

Ja, 'XTick' ist besser als 'XTicks'!

Ich erkenne die Frage zu den Fehlerbalken nicht. Du hast zwar viel Code gepostet, ich weiß aber nicht, was genau das Problem ist. Du möchtest die LineWidth der Fehlerbalken festlegen?
Code:
x = 1:10;
y = sin(x);
e = std(y) * ones(size(x));
errorbar(x, y, e, 'LineWidth', 1.5);

Hilft das?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
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.