Anzeige:
Ergebnis 1 bis 7 von 7

Thema: tikz / PGFplots: Fehler - dimension too large

  1. #1
    Registrierter Benutzer Avatar von Barny.G
    Registriert seit
    11.09.2008
    Beiträge
    120

    Question 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.
    ... mein Ball ist umgefallen

  2. #2
    Registrierter Benutzer
    Registriert seit
    23.07.2010
    Beiträge
    96
    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}
    P.png

    Ich schreibe das auf die todo liste fuer pgfplots (es laesst sich programmatisch handhaben).

  3. #3
    Registrierter Benutzer Avatar von Barny.G
    Registriert seit
    11.09.2008
    Beiträge
    120
    Hallo Herr Feuersänger,

    na ich habe vielleicht gestaunt vom Ersteller all dieser schönen tools direkt eine Antwort zu bekommen... Vielen Dank!

    Eine Frage habe ich dann noch: Bisher verwende ich
    Code:
    	width=\pgfwidth,
    	height=\pgfheight
    mit den vorab eingestellten Werten
    Code:
      \newcommand{\pgfwidth}{.8\linewidth}
      \newcommand{\pgfheight}{.6\linewidth}
    Nun scheinen sich aber diese Einstellungen mit der "Erweiterung" der x-Achse zu beißen. Wie kann ich dies trotzdem so "hinbasteln", dass das Erscheinungsbild mit meinen anderen Grafiken konform geht?

    Viele Grüße

    Thomas
    ... mein Ball ist umgefallen

  4. #4
    Registrierter Benutzer Avatar von Barny.G
    Registriert seit
    11.09.2008
    Beiträge
    120
    Hallo liebe Leute,

    kennt denn hier wirklich niemand diesen Fehler - oder besser dessen Lösung? Ich würde gern die Wirkung von
    Code:
    enlarge x limits=1,
    auf
    Code:
    	width=\pgfwidth,
    	height=\pgfheight
    kennen und damit der Lösung des Größenproblems näher kommen...

    Viele Grüße

    Thomas
    ... mein Ball ist umgefallen

  5. #5
    Registrierter Benutzer
    Registriert seit
    31.01.2014
    Beiträge
    61
    Hi Thomas,

    wenn hier grad keinem was dazu einfällt, kannst Du auch auf TeXwelt.de im Thema pgfplots fragen, da kennen sich einige hervorragend aus. Schneller Eindruck: Plot Beispiele.

    Studi

  6. #6
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Aber in dem Fall in beiden Foren jeweils den Link zum anderen mit angeben!

  7. #7
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    enlarge x limits=1 hat zur Folge, dass der auf der x-Achse angezeigete Datenbereich um 100% nach unten und um 100% nach oben erweitert wird. Es ist in dem Diagramm also links und rechts noch einmal genauso viel Platz frei, wie der Graph selbst breit ist bzw. der Graph nimmt nur noch ein Drittel der für das Diagramm zur Verfügung stehenden Breite ein.

    Gruß
    Elke

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •