X-Achsen Skalierung über 16000 nicht möglich

Wer eine gutes How-To hat. Bitte hier hinein.
Tommy Tungsten
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: So 27. Okt 2019, 09:22

X-Achsen Skalierung über 16000 nicht möglich

Beitrag von Tommy Tungsten »

Hallo zusammen,

ich habe nun schon einiges probiert, bekomme aber immer die Fehlermeldung "Dimension too large \end{axis}".

Habe schon die Befehle "restrict x to domain" und "enlarge x limits" probiert. Aber nicht zum Erfolg geführt.

Mein Ziel ist nur, das er weniger Werte für die Funktionen berechnet und somit der Speicher nicht überläuft, was vermutlich gerade der Fall ist.

Mein Code in verkürzter Form:

Code: Alles auswählen

 
\documentclass[10pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[a4paper,left=2.5cm,right=2.5cm,top=2.5cm,bottom=3cm]{geometry}
\usepackage{fancyhdr}
\usepackage{tabto}
\usepackage{booktabs}
\usepackage{bm}
\usepackage{textcomp}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{tikz}
\usepackage{pgfkeys}
\usepackage[miktex]{gnuplottex}
\usepackage{filecontents}
\usepackage{pst-plot}
\bibliographystyle{unsrt}



\begin{document}

\begin{figure}[h]
	\begin{center}
		\begin{tikzpicture}[scale=1.7]
		\begin{axis}
		[
		grid=major,		
		domain=0:15000,
		minor tick num=1,
		xlabel={Carbidgröße [µm]}, 
		ylabel={Auflösung [\%]},
		xmin=0, xmax=15000,
		ymin=0, ymax=100,
		xtick={0,1000,...,15000},
		x tick label style={rotate=45},
		xlabel near ticks,
		ticklabel style={/pgf/number format/precision=10, /pgf/number format/1000 sep={}},
		scaled ticks=false,
		ytick={0,10,...,100},
		ylabel near ticks
		]
		\scriptsize
		\addplot [only marks, mark=x, red] 
		table 
		{
			x 		y
			665    52.33083 
			414    49.51691 
			7399   3.676172 
			4130   7.457627 
						
		};
	\addplot [purple, samples = 300] {6333.7*x^(-0.805)};
	\addplot [only marks, mark=x, cyan] 
	table 
	{
		x 		y	
	4315   18.95713 
	3638   24.6564 
	5057   20.94127 
	7406   14.24521 
	4051   22.68576 				
	};
		\addplot [blue, samples = 500] {4288.4*x^(-0.659)};
		\legend{wenig vorgeschädigt, $y = 6333.7*x^{-0.805}$, stark vorgeschädigt, $y = 4288.4*x^{-0.659}$}
			\end{axis}
		\end{tikzpicture}
		\caption{Auflösungsverhalten Ni-Fe-WC (79h Glühzeit, Argon) }
		\label{NiFeWC79Analyse}
	\end{center}
\end{figure}

\end{document}


Bild ----- funktioniert iwie leider nicht.

Vielen Dank schonmal.

Hoffe ich hab alles richtig gemacht, ist mein erster Post.

Im Anhang die Grafik wie sie bisher aussieht, eigentlich perfekt nur die X-Achse sollte bis 35000 gehen.

Gruß Tommy
Dateianhänge
WC.JPG
WC.JPG (46.01 KiB) 384 mal betrachtet

Stamm-

Kleine Ursache, große Wirkung

Beitrag von Stamm- »

So stellen wir uns fast ein ordentliches Minimalbeispiel vor! Die Funktionen und ihre Definitionsbereiche (domain) sowie ihre Abtastung (samples) an sich sind nicht das Problem. Der Schlüssel liegt in der manuellen Festlegung der Teilstriche (xtick) auf der Abszisse. Wenn Dir also die Erweiterung der Abszisse und des Definitionsbereichs auf `36000` und eine automatische Unterteilung in 2000er-Schritten akzeptabel erscheinen, funktioniert der Plot ohne große Änderungen. Ich habe lediglich ein paar kleine Details geändert.

Code: Alles auswählen

% !TeX program = pdfLaTeX
\documentclass[10pt,a4paper,ngerman]{report}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}% Bei aktuellen TeX-Systemen nicht mehr nötig
\usepackage{babel}
\usepackage[
  left=2.5cm,
  right=2.5cm,
  top=2.5cm,
  bottom=3cm,
  includeheadfoot,
  showframe
]{geometry}% Dieser Satzspiegel ist recht fragwürdig
\usepackage{pgfplots}
\pgfplotsset{
  compat=1.16,
  xlabel near ticks,
  ylabel near ticks
}
\usepgfplotslibrary{units}% Einheiten an den Achsen. Dies werden allerdings falsch dargestellt.
%\usepackage{pgfplotstable}

\usepackage[detect-all,locale=DE]{siunitx}
%\sisetup{}

\usepackage{chemformula}
\setchemformula{format=\sffamily}

\usepackage{lmodern}
\usepackage{microtype}

\begin{document}
  \begin{figure}[!htb]
    \centering
    \begin{tikzpicture}%[scale=1.7]
      \begin{axis}[
        width=\linewidth,% Festlegung des Breite des Plots
%        font=\scriptsize,% Änderung der Schriftgröße für die Achsen
        grid=major,   
        domain=0:36000,
        minor tick num=1,
        xlabel={Carbidgröße},
        x unit={\si{\micro\m}},% Eigentlich falsche Darstellung von Einheiten
        ylabel={Auflösung},
        y unit={\si{\percent}},% Eigentlich falsche Darstellung von Einheiten
        xmin=0,
        xmax=36000,
        ymin=0,
        ymax=100,
%        xtick={0,1000,...,36000},% Hier liegt die Ursache bei `16000`
        x tick label style={anchor=north east,rotate=45},
        ticklabel style={
%          /pgf/number format/precision=10,% bewirkt hier keinen sichtbaren Effekt
          /pgf/number format/1000 sep={}
        },
        scaled ticks=false,
%        ytick={0,10,...,100},% In diesem Fall gar nicht nötig
      ]
        \addplot[only marks,mark=x,red] table {
            x           y
          665    52.33083
          414    49.51691
          7399   3.676172
          4130   7.457627
        };
        \addplot[purple,samples=500] {6333.7*x^(-0.805)};
        \addplot[only marks,mark=x,cyan] table {
             x          y
          4315   18.95713
          3638   24.6564
          5057   20.94127
          7406   14.24521
          4051   22.68576            
        };
        \addplot [blue, samples = 500] {4288.4*x^(-0.659)};
        \legend{wenig vorgeschädigt, $y=6333.7\cdot x^{-0.805}$,stark vorgeschädigt,$y=4288.4\cdot x^{-0.659}$}
      \end{axis}
    \end{tikzpicture}
    \caption{Auflösungsverhalten \ch{Ni}"=\ch{Fe}"=\ch{WC} (\SI{79}{\hour} Glühzeit, Argon)}
    \label{fig:NiFeWC-79-Analyse}
  \end{figure} 
\end{document}

Anmerkung(en):

Tommy Tungsten
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: So 27. Okt 2019, 09:22

Beitrag von Tommy Tungsten »

Hi Stammgast,

echt viiiiiiiielen Dank für die ganzen Tipps und die schnelle Lösung. Ich denke das bekomme ich hin, ansonsten frag` ich nochmal.

Gruß

Gast

Re: Kleine Ursache, große Wirkung

Beitrag von Gast »

@Stammgast

Code: Alles auswählen

x unit={\si{\micro\m}},% Eigentlich falsche Darstellung von Einheiten
Wie sieht die "richtige" Darstellung aus?

Antworten