Bar Chart mit kleiner Y-Range

Tabellen und Grafiken erstellen und anordnen


doeminick
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mo 28. Okt 2013, 19:23

Bar Chart mit kleiner Y-Range

Beitrag von doeminick »

Hi!

Ich möchte ein Bar Graph erzeugen und nutze dafür matlab2tikz. Das klappt auch alles gut, bis auf einen Graphen. Hierbei betrachte ich nur einen kleinen Ausschnitt auf der Y-Achse und kriege "Dimension too large" Fehler. Daher habe ich in die pgfplots-Manual geschaut und auch gefunden, dass diese Fehler bei Daten die sehr nah aneinander liegen entstehen, jedoch kein Problem bei absoluten Werten größer sind, relativ aber gleich sind sein sollte. Also einfach mal alle Werte x1000 genommen um dann nachher einfach die Y-Tickz per Hand zu setzen. Aber nein, gleicher Fehler obwohl nun ymin=996 und ymax=1002 sind.

Kann mir jemand Hilfe geben? Vielen Dank :).

Hier mein (ursprünglicher) Tikz Code:
% This file was created by matlab2tikz v0.4.1.
% Copyright (c) 2008--2013, Nico Schlömer <nico.schloemer@gmail.com>
% All rights reserved.
% 
% The latest updates can be retrieved from
%   http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz
% where you can also make suggestions and rate matlab2tikz.
% 
% 
% 

% defining custom colors
\definecolor{mycolor1}{rgb}{0,0,0.00520833333333333}%

\begin{tikzpicture}
\begin{axis}[%
width=\figurewidth,
height=\figureheight,
area legend,
scale only axis,
xmin=0.5,
xmax=4.5,
xtick={1,2,3,4},
xticklabels={A,B,C,D},
ymin=0.996,
ymax=1.002,
ylabel={Verbesserung},
ymajorgrids,
legend style={at={(0.5,1.03)},anchor=south,legend columns=2,draw=black,fill=white,legend cell align=left}
]
\addplot[ybar,bar width=0.0571428571428571\figurewidth,bar shift=-0.0357142857142857\figurewidth,fill=mycolor1,draw=black] plot coordinates{(1,1)
(2,1)
(3,1)
(4,1)};

\addlegendentry{Ohne};

\addplot [
color=black,
solid,
forget plot
]
table[row sep=crcr]{
0.5 0\\
4.5 0\\
};
\addplot[ybar,bar width=0.0571428571428571\figurewidth,bar shift=0.0357142857142857\figurewidth,fill=white,draw=black] plot coordinates{(1,1.00063267718012)
(2,1.00016121821389)
(3,1.00108135520258)
(4,0.999543145163719)};

\addlegendentry{Mit};

\end{axis}
\end{tikzpicture}%

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Crosspost auf LaTeX Community
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

doeminick
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mo 28. Okt 2013, 19:23

Beitrag von doeminick »

Entschuldigung, ich hatte die Regel über Crossposts nicht gelesen (btw, handelt es sich nicht um Multiposts dann ;) )?
Ich wollte einfach eine möglichst große Gemeinde alsbald ansprechen, da ich diese Graphik für eine Abgabe in naher Zeit benötige. Könnte mir jemand trotzdem helfen?

feuersaenger
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 91
Registriert: Mi 5. Okt 2011, 18:24
Wohnort: Rheinbach

Beitrag von feuersaenger »

Hi,

das Problem entsteht dadurch, dass Koordinaten "relativ" weit ausserhalb des Sichtbaren Bereichs geplottet werden.

Das "weit" bezieht sich dabei auf den Faktor, der zwischen der Breite des angezeigten Gebiets und den aussenstehenden Koordinaten besteht (d.h. ymax-ymin im Vergleich zu der groessten y koordinate).

Dem kann abgeholfen werden, indem die weit aussenliegenden Koordinaten auf ein "annehmbares" Mass gezwungen werden. Das aendert typischerweise nichts am Aussehen, das sie ohnehin weit ausserhalb des sichtbaren Bereiches sind - aber TeX meckert nicht mehr.

Konkret:
restrict x to domain*=0:3,
restrict y to domain*=0.8:2,
Dieser Key forziert x bzw. y auf die angegebenen Bereiche. Falls ein Punkt rausfaellt, wird er auf die Intervallgrenze gezwungen (das ist der Effekt des Asterisk).

Vielleicht musst Du ein bisschen mit den Parametern rumspielen, aber obige passten bei mir.

Mit liebem Gruss

Christian

Antworten