1
1

alt text

Sehe ich das richtig, dass sich den minor ticks keine Labels zuordnen lassen, im Unterschied zu den standardmäßigen xticklabels bzw. den extra x tick labels?

Meine Idee ist es, im Beispiel, pi/4- bzw. pi/2-Unterteilungen zu bzw. abschalten zu können. Wie könnte ich das machen?

Öffne in Overleaf
%\documentclass[]{article}
\documentclass[border=5mm, varwidth]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}

\begin{document}

\begin{tikzpicture}[]
\begin{axis}[
font=\footnotesize,      
%x = 0.785 cm, 
enlarge y limits={0.5,upper}, % kein Effekt
axis lines=middle, 
xlabel=$x$,xlabel style={anchor=north},
ylabel=$y$,%ylabel style={anchor=east},
      ylabel style={at=(current axis.above origin), anchor=base east},%<-
x axis line style = {-latex}, y axis line style = {-latex},
%
xtick= {3.14, 6.28},           
xticklabels={$\pi$, $2\pi$},
%
minor xtick = {1.57,4.71},
%minor xtick labels={$\frac{\pi}2$, $\frac{3\pi}2$}, % geht nicht
%
extra x ticks={0.79,2.35,3.92,5.50},
extra x tick labels={$\frac\pi4$, $\frac{3\pi}4$, $\frac{5\pi}4$, $\frac{7\pi}4$},
%extra tick length={...}, % geht nicht
typeset ticklabels with strut,% ausrichten der ticklabels
enlarge y limits={0.125},
]
\addplot[domain=0:7, samples=300] {sin(deg(x))}; 
\end{axis}
\end{tikzpicture}

\end{document}

gefragt 15 Feb, 09:30

cis's gravatar image

cis
7.3k14156249
Akzeptiert: 72%

bearbeitet 21 Feb, 15:29

Ich denke, die Idee von minor ticks ist, dass sie keinen Text haben. Sonst wären sich ja major ticks. Du könntest versuchen die extra x ticks so wie minor ticks zu formattieren.

(19 Feb, 18:41) Henri

Ich denke, das lässt sich pgfmath-artig lösen, anhand einer xtick-Liste und geeigneter Rechnungen, so dass pi/4- und pi/2- bzw. nur pi/2-Unterteilungen entstehen. Ich denke, ich kriege das hin und will es auch posten. Danke für die Erinnerung.

(19 Feb, 20:20) cis

Und klar, die extra ticks brauchen dann die minor tick length, muss ich auch noch hinkriegen.

(19 Feb, 20:21) cis

Irgendwie verlässt mich nicht der Verdacht, dass man meine AW in 3 Zeilen hätte umsetzen können. :)

(23 Feb, 15:05) cis

Es ist doch etwas komplizierter und verschachtelter geworden als ich dachte.

Falls das jemand einfacher hinbekommt, gerne.

In folgendem Code kann man eine Unterteilungstiefe 4 oder 2 oder 1 eingeben, für pi/4- oder pi/2- oder pi-Skalierung.

alt text

Öffne in Overleaf
 %\documentclass[]{article}
\documentclass[border=5mm, tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}

\begin{document}

\def\Unterteilungstiefe{4} % 4 oder 2  oder 1
% Reichweite der Ticks festlegen
\def\Range{-5,...,10}
% xticklist erstellen
\newcommand{\xticklist}{}% Name reservieren
\let\xticklist=\empty% Liste erstellen
\makeatletter
\foreach \n  in \Range
{
\pgfmathparse{pi*\n/\Unterteilungstiefe}%
  \ifx\empty\xticklist{} \protected@xdef\xticklist{\pgfmathresult}%
  \else \protected@xdef\xticklist{\xticklist,\pgfmathresult}%
  \fi
}\makeatother
%Anzeigen: \xticklist

\begin{tikzpicture}[]
\begin{axis}[width=7cm,
font=\footnotesize, 
x = 0.785 cm, 
axis lines=middle, 
xtick/.expanded = {\xticklist},           
xticklabel={%
% Pi-Ganze-Einheiten
\pgfmathsetmacro{\g}{((\tick/pi))}%
\pgfmathsetmacro{\gP}{int(ceil(\g))}%
\pgfmathsetmacro{\gN}{int(abs(floor(\g)))}%
\def\GanzePositivSonst{(mod(\gP,1) == 0 ? "\gP\pi" : "p")}%
\def\GanzePositivEins{\gP == 1 ? "\pi"}%
\def\GanzePositiv{\GanzePositivEins : (\GanzePositivSonst)}%
\def\GanzeNegativSonst{mod(\gN,1) == 0 ? "-\gN\pi" : "n"}%
\def\GanzeNegativEins{\gN == 1 ? "-\pi"}%
\def\GanzeNegativ{\GanzeNegativEins : (\GanzeNegativSonst)}%
% Pi-Halbe-Einheiten
\pgfmathsetmacro{\h}{((\tick*2/pi))}%
\pgfmathsetmacro{\hP}{int(ceil(\h))}%
\pgfmathsetmacro{\hN}{int(abs(floor(\h)))}%
\def\HalbePositivSonst{(mod(\hP,2) == 1 ? "\frac{\hP\pi}{2}" : (\GanzePositiv))}%
\def\HalbePositivEins{\hP == 1 ? "\frac{\pi}{2}"}%
\def\HalbePositiv{\HalbePositivEins : (\HalbePositivSonst)}%
\def\HalbeNegativSonst{mod(\hN,2) == 1 ? "-\frac{\hN\pi}{2}" : (\GanzeNegativ)}%
\def\HalbeNegativEins{\hN == 1 ? "-\frac{\pi}{2}"}%
\def\HalbeNegativ{\HalbeNegativEins : (\HalbeNegativSonst)}%
% Pi-Viertel-Einheiten
\pgfmathsetmacro{\v}{((\tick*4/pi))}%
\pgfmathsetmacro{\vP}{int(ceil(\v))}%
\pgfmathsetmacro{\vN}{int(abs(floor(\v)))}%
\def\ViertelPositivSonst{(mod(\vP,2) == 1 ? "\frac{\vP\pi}{4}" : (\HalbePositiv))}%
\def\ViertelPositivEins{\vP == 1 ? "\frac{\pi}{4}"}%
\def\ViertelPositiv{\ViertelPositivEins : (\ViertelPositivSonst)}%
\def\ViertelNegativSonst{mod(\vN,2) == 1 ? "-\frac{\vN\pi}{4}" :  (\HalbeNegativ)}%
\def\ViertelNegativEins{\vN == 1 ? "-\frac{\pi}{4}"}%
\def\ViertelNegativ{\ViertelNegativEins : (\ViertelNegativSonst)}%
%
\pgfmathparse{\tick > 0 ? (\ViertelPositiv) : (\ViertelNegativ) 
}$\pgfmathresult$
},
%minor xtick/.expanded = {\xticklist},
enlarge y limits=.125,
]
\addplot[domain=-5:9, samples=300] {sin(deg(x))}; 
\end{axis}
\end{tikzpicture}

\end{document}
Permanenter link

beantwortet 21 Feb, 14:39

cis's gravatar image

cis
7.3k14156249

bearbeitet 21 Feb, 16:13

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×234

Frage gestellt: 15 Feb, 09:30

Frage wurde angeschaut: 589 Mal

Zuletzt aktualisiert: 23 Feb, 15:05