TikZ x-Achse an unteren Grafikrand setzen (neg. y-Achse)

Tabellen und Grafiken erstellen und anordnen


Kugli93
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mi 24. Jun 2015, 17:16

TikZ x-Achse an unteren Grafikrand setzen (neg. y-Achse)

Beitrag von Kugli93 »

Hallo,

ich benutze aktuell diesen Code zum zeichnen eines Plots:
\begin{figure}[h!]
		\centering 
		\begin{tikzpicture} 
		\begin{axis}[ 
		axis lines=center,
		width=10cm,     height=5cm, 
		domain=0:0.04, 
		ymin=-0.04, ymax=0.04,   xmin=0, xmax=0.04,
		ylabel={Abweichung $\Delta\ \alpha_i$},        xlabel={$\delta_0\ / \tau_p$}, 
		label style={% erst nach Option axis lines verwenden 
		at={(ticklabel cs:0.5)},anchor=near ticklabel,sloped}, 
		grid=both,% Haupt- und Nebenlinien 
		major grid style={gray!50},
		]
		\addplot+[name path=D, mark=none, line width = 1, color={tumblau}] {(4301*x^4 -422.5*x^3 -16.4*x^2 +2.358*x -0.03006)};
		%\addplot+[name path=D, mark=none, line width = 1, color={tumblau}] {((0.6119*x^4 + 0.3849*x^3 -1.148*x^2 + 0.242*x -0.003299)/(x^2 + 2.249*x + 0.107))};
		\end{axis}
		\end{tikzpicture} 
		caption[Abweichung des Polbedeckungsfaktors $\Delta\ \alpha_i$]{Abweichung des Polbedeckungsfaktors $\Delta\ \alpha_i$\label{fig:DeltaPolbedeckung}}
	\end{figure}
Dabei zeigt es mir aber die x-Achse aber auf Höhe des Ursprungs der y-Achse an.
Geht es, dass ich diese an den unteren Rand der Grafik setze, also auf Höhe y=-0.04 setze? Das würde mir besser gefallen.

Außerdem skaliert es die Achsen ja mit 10^-2. Kann ich das ändern, also dass die Achse mit -0,04 -0,02 usw beschriftet wird?

Vielen Dank und Liebe Grüße,
Philipp
Dateianhänge
Graph.jpg
Graph.jpg (65.86 KiB) 3444 mal betrachtet

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Re: TikZ x-Achse an unteren Grafikrand setzen (neg. y-Achse)

Beitrag von esdd »

Kugli93 hat geschrieben: Dabei zeigt es mir aber die x-Achse aber auf Höhe des Ursprungs der y-Achse an.
Geht es, dass ich diese an den unteren Rand der Grafik setze, also auf Höhe y=-0.04 setze? Das würde mir besser gefallen.
Aber das hast Du doch mit axis lines=center selbst vorgegeben? Ändere das zu axis lines=left oder axis x line=bottom, axis y line=center.
Kugli93 hat geschrieben: Außerdem skaliert es die Achsen ja mit 10^-2. Kann ich das ändern, also dass die Achse mit -0,04 -0,02 usw beschriftet wird?
Zum Beispiel mit
scaled ticks=false, ticklabel style={/pgf/number format/.cd,fixed,precision=3}
Gruß
Elke

PS: Bitte gib immer ein lauffähiges Minimalbeispiel an. Dann kann man Vorschläge auch einfach testen.

Kugli93
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mi 24. Jun 2015, 17:16

Beitrag von Kugli93 »

super, danke für die schnelle Antwort.

Ich bekomm nur leider die Meldung:
Package pgfkeys Error: I do not know the key '/pgf/number format/at', to whicu misspelled it. \end{axis}

Ein Minimalbeispiel zu machen ist für mich leider schwierig, da ich einfach die vom Lehrstuhl vorgegebene Vorlage für meine Bachelorarbeit benutze. Was die ganzen usepackages genau machen weiß ich ehrlich gesagt gar nicht, drum ist es auch schwierig diese hier rein zu setzen.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Kugli93 hat geschrieben:Was die ganzen usepackages genau machen weiß ich ehrlich gesagt gar nicht, drum ist es auch schwierig diese hier rein zu setzen.
Dann solltest Du Dich mal damit beschäftigen ;-)
\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\colorlet{tumblau}{blue}
%\pgfplotsset{compat=1.12}% aktuelle Version
\pgfplotsset{compat=newest}% damit es im Online-Editor läuft
\begin{document}
\begin{tikzpicture} 
  \begin{axis}[
      axis x line=bottom,
      axis y line=center,
      width=10cm,     height=5cm, 
      domain=0:0.04, 
      ymin=-0.04, ymax=0.04,   xmin=0, xmax=0.04, 
      ylabel={Abweichung $\Delta\ \alpha_i$},        xlabel={$\delta_0\ / \tau_p$}, 
      label style={% erst nach Option axis lines verwenden  
      at={(ticklabel cs:0.5)},anchor=near ticklabel,sloped}, 
      grid=both,% Haupt- und Nebenlinien  
      major grid style={gray!50},
      scaled ticks=false, ticklabel style={/pgf/number format/.cd,fixed,precision=3},
    ] 
    \addplot+[name path=D, mark=none, line width = 1, color={tumblau}] {(4301*x^4 -422.5*x^3 -16.4*x^2 +2.358*x -0.03006)}; 
  \end{axis} 
\end{tikzpicture} 
\end{document}
läuft jedenfalls fehlerfrei durch. Das kannst Du auch sehen, wenn Du auf "Öffne in Online-Editor" klickst.

Gruß
Elke

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Kugli93 hat geschrieben:Was die ganzen usepackages genau machen weiß ich ehrlich gesagt gar nicht, drum ist es auch schwierig diese hier rein zu setzen.
Das schreit doch geradezu nach dem Link von Minimale Vorlage vs. maximale Probleme
Ein vollständiges Minimalbeispiel (VM) zu erzeugen, ist gar nicht schwer und hilft ganz oft, Fehler selber zu finden. Ohne bekommt man selten gute Antworten. Anleitungen findest du z.B. im golatex Wiki auf TeXWelt oder minimalbeipiel.de
Außerdem hilft das Lesen dieser Seite, Fragen richtig zu stellen.

Kugli93
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mi 24. Jun 2015, 17:16

Beitrag von Kugli93 »

okay perfekt, danke dir! er funktioniert jetzt!

Nur eine letzte Kleinigkeit hierzu noch: Es funktioniert die schriftverkleinerung durch :
x tick label style={font=\small},
y tick label style={font=\small},
x label style={font=\small},
y label style={font=\small},
legend style={font=\small},
jetzt nicht mehr.


und wenn ich jetzt grade schon jemanden hier habe, der sich so gut auskennt, hätte ich gleich noch eine Frage :)

gibt es eine Möglichkeit ein Bild am Ende einer Seite so groß zu machen, dass es den restlichen Platz der Seite maximal ausnutzt?

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

okay perfekt, danke dir! er funktioniert jetzt!

Nur eine letzte Kleinigkeit hierzu noch: Es funktioniert die schriftverkleinerung durch :
x tick label style={font=\small},
y tick label style={font=\small},
x label style={font=\small},
y label style={font=\small},
legend style={font=\small},
jetzt nicht mehr.
[/Quote]

Das gibt jetzt mehrere Möglichkeiten dafür. Wenn ohnehin alle Zahlen so formattiert werden sollen, geht einfach
\documentclass[margin=5pt]{standalone} 
\usepackage{pgfplots} 
\usepgfplotslibrary{fillbetween} 
\colorlet{tumblau}{blue} 
%\pgfplotsset{compat=1.12}% aktuelle Version 
\pgfplotsset{compat=newest}% damit es im Online-Editor läuft 
\begin{document} 
\begin{tikzpicture} 
   \begin{axis}[ 
       axis x line=bottom, 
       axis y line=center, 
       width=10cm,     height=5cm, 
       domain=0:0.04, 
       ymin=-0.04, ymax=0.04,   xmin=0, xmax=0.04, 
       ylabel={Abweichung $\Delta\ \alpha_i$},        xlabel={$\delta_0\ / \tau_p$}, 
       label style={% erst nach Option axis lines verwenden   
       at={(ticklabel cs:0.5)},anchor=near ticklabel,sloped}, 
       grid=both,% Haupt- und Nebenlinien   
       major grid style={gray!50},
       x tick label style={font=\tiny},
       scaled ticks=false,
      /pgf/number format/.cd,% am Ende
        fixed,precision=3,use comma
     ] 
     \addplot+[name path=D, mark=none, line width = 1, color={tumblau}] {(4301*x^4 -422.5*x^3 -16.4*x^2 +2.358*x -0.03006)}; 
   \end{axis} 
\end{tikzpicture} 
\end{document}


Kugli93 hat geschrieben:gibt es eine Möglichkeit ein Bild am Ende einer Seite so groß zu machen, dass es den restlichen Platz der Seite maximal ausnutzt?
Das dürfte nur durch manuelles Anpassen machbar sein.

Kugli93
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mi 24. Jun 2015, 17:16

Beitrag von Kugli93 »

Also Vielen Dank nochmal! Echt super Hilfe von dir! Hab jetzt tatsächlich alles genau so wie ich es mir wünsche, Vielen Dank!

Antworten