ytick umbenennen

Tabellen und Grafiken erstellen und anordnen


kannstmasehn
Forum-Century
Forum-Century
Beiträge: 165
Registriert: Mo 5. Mai 2014, 16:55

ytick umbenennen

Beitrag von kannstmasehn »

Moin,

folgendes Problem: Ich möchte die "1" im Graphen durch ein $\varepsilon$ ersetzen. Ist das möglich? Wenn ja, wie?
Hier mein Minimalbeispiel:
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:2, samples=400, ytick={0,1}]
\addplot+[mark=none, skip coords between index={0}{210}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[mark=none, skip coords between index={191}{400}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[black,mark=none, thin] {1};
\end{axis}
\end{tikzpicture}

\end{document}

Danke im Voraus und viele Grüße.

Besserwisser

Beitrag von Besserwisser »

:twisted:
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:2, samples=400,
  ytick={0,1},yticklabel={\ifdim\tick pt=1pt $\varepsilon$\else\tick\fi}]
\addplot+[mark=none, skip coords between index={0}{210}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[mark=none, skip coords between index={191}{400}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[black,mark=none, thin] {1};
\end{axis}
\end{tikzpicture}
\end{document}
:twisted:

kannstmasehn
Forum-Century
Forum-Century
Beiträge: 165
Registriert: Mo 5. Mai 2014, 16:55

Beitrag von kannstmasehn »

Danke :twisted: ;)

Da hätte ich ja auch selber drauf kommen können :D

Schönes Wochenende!

kannstmasehn
Forum-Century
Forum-Century
Beiträge: 165
Registriert: Mo 5. Mai 2014, 16:55

Beitrag von kannstmasehn »

Dadurch macht er bei der aus der "0" eine "0.0". Wie kann ich das wieder rückgängig machen?

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

Beitrag von esdd »

Im Code von Besserwisser empfiehlt sich noch eine kleine Änderung/Ergänzung:
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:2, samples=400,
  ytick={0,...,10},
  yticklabel={\ifdim\tick pt=1pt $\varepsilon$\else\pgfmathprintnumber{\tick}\fi}
]
\addplot+[mark=none, skip coords between index={0}{210}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[mark=none, skip coords between index={191}{400}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[black,mark=none, thin] {1};
\end{axis}
\end{tikzpicture}
\end{document}

Alternativ ginge auch einfach
\documentclass[border=3mm]{standalone} 
\usepackage{pgfplots}
\pgfplotsset{
compat=newest,% newest statt 1.12,.damit es im Online-Editor läuft
%compat=1.12% derzeit aktuelle Version
}

\begin{document} 
\begin{tikzpicture} 
\begin{axis}[domain=0:2, samples=400,
  ytick={0,...,10},
  yticklabels={0,$\varepsilon$,2,3,...,10},
  typeset ticklabels with strut
] 
\addplot+[mark=none, skip coords between index={0}{210}] {sqrt((x^2/(1-x^2))^2)}; 
\addplot+[mark=none, skip coords between index={191}{400}] {sqrt((x^2/(1-x^2))^2)}; 
\addplot+[black,mark=none, thin] {1}; 
\end{axis} 
\end{tikzpicture} 
\end{document}

kannstmasehn
Forum-Century
Forum-Century
Beiträge: 165
Registriert: Mo 5. Mai 2014, 16:55

Beitrag von kannstmasehn »

Super, die Alternative schaut gut aus. Ich habe meine Variante ein wenig angepasst:
\documentclass[border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:2, samples=400,
  ytick={0,1},
  yticklabels={0,$\varepsilon$},
  typeset ticklabels with strut
]
\addplot+[mark=none, skip coords between index={0}{210}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[mark=none, skip coords between index={191}{400}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[dashed,black,mark=none, thin] {1};
\end{axis}
\end{tikzpicture}
\end{document}

Vielen Dank!

Besserwisser

Beitrag von Besserwisser »

Die :twisted: sollten übrigens darauf hinweisen, dass das nicht so ernst gemeint ist. Die ganzen Optionen für die Ticks sind übrigens in der [d]pgfplots[/d]-Anleitung in Abschnitt 4.15, Ticks Options, zu finden. Wenn man dort Option yticklabel nachliest, findet man auch zwangsläufig yticklabels. Vermutlich war das von mir aber wieder zu hintergründig gedacht …

kannstmasehn
Forum-Century
Forum-Century
Beiträge: 165
Registriert: Mo 5. Mai 2014, 16:55

Beitrag von kannstmasehn »

Ich gelobe Besserung.

Besserwisser

Beitrag von Besserwisser »

esdd hat geschrieben:Im Code von Besserwisser empfiehlt sich noch eine kleine Änderung/Ergänzung:
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:2, samples=400,
  ytick={0,...,10},
  yticklabel={\ifdim\tick pt=1pt $\varepsilon$\else\pgfmathprintnumber{\tick}\fi}
]
\addplot+[mark=none, skip coords between index={0}{210}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[mark=none, skip coords between index={191}{400}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[black,mark=none, thin] {1};
\end{axis}
\end{tikzpicture}
\end{document}
oder gleich:
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:2, samples=400,
  ytick={0,...,10},
  yticklabel={\ifdim\tick pt=1pt $\varepsilon$\else\axisdefaultticklabel\fi}
]
\addplot+[mark=none, skip coords between index={0}{210}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[mark=none, skip coords between index={191}{400}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[black,mark=none, thin] {1};
\end{axis}
\end{tikzpicture}
\end{document}
Dann ist auch noch der fehlende Mathemodus für die Zahlen ergänzt. Der gehört AFAIK streng genommen auch bei Deinem Zweiten Beispiel für die Zahlen ergänzt, wenn man ihn nicht per Stil erzwingt. Im Beispiel ist es zwar Jacke wie Hose, ob man Zahlen im Mathemodus setzt oder nicht, aber das kann auch mal anders sein.

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

Beitrag von esdd »

Besserwisser hat geschrieben:
oder gleich:
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:2, samples=400,
  ytick={0,...,10},
  yticklabel={\ifdim\tick pt=1pt $\varepsilon$\else\axisdefaultticklabel\fi}
]
\addplot+[mark=none, skip coords between index={0}{210}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[mark=none, skip coords between index={191}{400}] {sqrt((x^2/(1-x^2))^2)};
\addplot+[black,mark=none, thin] {1};
\end{axis}
\end{tikzpicture}
\end{document}
Das ist dann wirklich die bessere Variante, wenn man viele Ticks hat und nicht nur
yticklabels={$0$,$\varepsilon$},
denn
Besserwisser hat geschrieben:
Dann ist auch noch der fehlende Mathemodus für die Zahlen ergänzt. Der gehört AFAIK streng genommen auch bei Deinem Zweiten Beispiel für die Zahlen ergänzt, wenn man ihn nicht per Stil erzwingt.
stimmt und man müsste damit alle Ticklabel hinschreiben, weil die ... Syntax nicht mehr funktioniert, wenn man den Mathemodus die Zahlen einfügt.

Antworten