tikz / PGFplots: Fehler - dimension too large
Hallo liebe Gemeinde,
schon seit einiger Zeit schreibe ich erfolgreich mit tikz in LaTeX. Meist habe ich die auftretenden Fehler finden können (auch mit Hilfe der Archiv-Funktion hier ;)) aber heute komme ich nicht weiter...
Der Fehler "! Dimension too large" wird meines Erachtens nach oft von einem Nenner, der Null wird, im tikz-Paket hervorgerufen. Leider kann ich beim besten Willen und mehrtägiger Suche (natürlich nicht zusammenhängend...) den Fehler im script nicht finden. Vielleicht kann sich ja mal "jemand" mein Beispiel ansehen?
Code:
\documentclass{scrreprt}
\usepackage{geometry}
\geometry{a4paper,left=35mm,right=28mm, top=25mm, bottom=27mm}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[locale = DE, range-phrase = --]{siunitx}
\DeclareSIUnit\gon{gon}
\let\cdot=\mult
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning,calc,fit,patterns,through}
%\usepackage{empheq}
%\usepackage{amssymb}
\usepackage{pgfplots} % für schöne MatLab-Grafiken
\newcommand{\pgfwidth}{.8\linewidth}
\newcommand{\pgfheight}{.6\linewidth}
\pgfplotsset{compat=1.7}
\begin{document}
\begin{figure}[H]
\centering
\begin{tikzpicture}%
\begin{axis}[
legend columns=1,
legend cell align=left,
tick pos=left,
tick align=inside,
title={$\lambda = \SIrange{1e-30}{100}$},
xlabel={Residuennorm $\left\|\MF\left(\Vm\right) - \Vd\right\|$},
ylabel={Modellnorm $\left\|\Vm\right\|$},
xmode=log,
ymode=log,
xmin=6.3939e-09,
xmax=7.0346e-09,
ymin=100,
ymax=10000,
xtick={6.4565e-09,6.6069e-09,6.7608e-09,6.9183e-09},
ytick={100,1000,10000},
width=\pgfwidth,
height=\pgfheight]
\legend{%
L-Kurve\\%
curvature\\%
$\min\left( \left\|\MF\left(\Vm\right) - \Vd\right\| + \left\|\Vm\right\| \right)$ \\%
}%
\addplot[
line width=.5pt,
color=red,
solid,
mark=diamond*,
mark options={solid,scale=0.5}]
plot coordinates {
(7.033368e-09, 5.490693e+03)
(7.033373e-09, 5.458126e+03)
(7.033397e-09, 5.316605e+03)
(7.033505e-09, 4.766770e+03)
(7.033912e-09, 3.313811e+03)
(7.034581e-09, 1.711119e+03)
(7.034599e-09, 1.215509e+03)
(7.032693e-09, 1.166645e+03)
(7.023810e-09, 1.151235e+03)
(6.988095e-09, 1.112351e+03)
(6.865412e-09, 1.044649e+03)
(6.604532e-09, 9.583750e+02)
(6.432061e-09, 9.137736e+02)
(6.401853e-09, 9.144226e+02)
(6.393924e-09, 9.162499e+02)
(6.399755e-09, 9.161154e+02)
(6.405086e-09, 9.159514e+02)
(6.406745e-09, 9.159036e+02)
(6.407144e-09, 9.158924e+02)
(6.407235e-09, 9.158899e+02)
(6.407255e-09, 9.158893e+02)
(6.407259e-09, 9.158892e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
};
\addplot[
line width=.5pt,
color=blue,
only marks,
mark=asterisk,
mark options={solid}]
plot coordinates {
(6.407260e-09, 9.158891e+02)
};
\addplot[
line width=.5pt,
color=black,
only marks,
mark=triangle,
mark options={solid,rotate=180}]
plot coordinates {
(6.432061e-09, 9.137736e+02)
};
\end{axis}
\end{tikzpicture}%
\caption{L-Kurven-Kriterium}
\label{fig:LKrv}%
\end{figure}
\end{document}
Bitte nicht abschrecken lassen, die meisten Zeilen sind Koordinaten. Auch habe ich schon wechselnd verschiedene Zeilen (auch mal alle Koordinaten) ausgeblendet - ohne Erfolg. Wahrscheinlich liegt der Fehler schon in den ersten Zeilen nach
Code:
\begin{tikzpicture}%
\begin{axis}[
Ich hoffe, dass jemand schon mal den gleichen Fehler gemacht hat und ich lernen kann...
Viele Grüße
Thomas.
Liste der Anhänge anzeigen (Anzahl: 1)
Du bist damit unbeabsichtigt in einen Datenbereich gelaufen, den pgfplots nicht mehr kann (und das nicht erkennt): Dein auf der x Achse angezeigter Datenbereich ist so klein, dass, wenn pgfplots diesen auf width "aufblaest", es an Berechnungsgrenzen stoesst.
Beheben laesst sich das aktuell leider nur, indem Du den Datenbereich kuenstlich vergroesserst. In Deinem Fall reichen 100% (enlarge x limits=1). Ein entsprechend reduziertes Beispiel koennte wie folgt aussehen:
Code:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
\begin{document}
\begin{tikzpicture}%
\begin{axis}[
xmode=log,
ymode=log,
xmin=6.3939e-09,
xmax=7.0346e-09,
enlarge x limits=1,
]
\addplot[
line width=.5pt,
color=red,
solid,
mark=diamond*,
mark options={solid,scale=0.5}]
plot coordinates {
(7.033368e-09, 5.490693e+03)
(7.033373e-09, 5.458126e+03)
(7.033397e-09, 5.316605e+03)
(7.033505e-09, 4.766770e+03)
(7.033912e-09, 3.313811e+03)
(7.034581e-09, 1.711119e+03)
(7.034599e-09, 1.215509e+03)
(7.032693e-09, 1.166645e+03)
(7.023810e-09, 1.151235e+03)
(6.988095e-09, 1.112351e+03)
(6.865412e-09, 1.044649e+03)
(6.604532e-09, 9.583750e+02)
(6.432061e-09, 9.137736e+02)
(6.401853e-09, 9.144226e+02)
(6.393924e-09, 9.162499e+02)
(6.399755e-09, 9.161154e+02)
(6.405086e-09, 9.159514e+02)
(6.406745e-09, 9.159036e+02)
(6.407144e-09, 9.158924e+02)
(6.407235e-09, 9.158899e+02)
(6.407255e-09, 9.158893e+02)
(6.407259e-09, 9.158892e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
(6.407260e-09, 9.158891e+02)
};
\addplot[
line width=.5pt,
color=blue,
only marks,
mark=asterisk,
mark options={solid}]
plot coordinates {
(6.407260e-09, 9.158891e+02)
};
\addplot[
line width=.5pt,
color=black,
only marks,
mark=triangle,
mark options={solid,rotate=180}]
plot coordinates {
(6.432061e-09, 9.137736e+02)
};
\end{axis}
\end{tikzpicture}%
\end{document}
Anhang 6041
Ich schreibe das auf die todo liste fuer pgfplots (es laesst sich programmatisch handhaben).