Die Frage ist zum Archivieren gedacht, kein Support benötigt. Antworten sind jedoch gern gesehen und sehr willkommen! Ich beantworte die Frage auch selbst.


alt text

Etwa bei trigonometrischen Kurven wünscht man oft eine Achsenskalierung mit Pi-Faktoren.

Meistens werden Pi-Ganze, Pi-Halbe oder Pi-Viertel Unterteilungen gewählt, das heißt "Unterteilungstiefe" 1 bzw. 2 bzw. 4.

Günstig wäre also ein Code, der eine beliebige Unterteilungstiefe erlaubt (also z.B. auch Skalierung mit Pi-Siebtel Faktoren) und dabei folgenden Darstellungskriterien genügt:

alt text

Wie kann man das umsetzen?

gefragt 02 Mai '18, 20:33

cis's gravatar image

cis
9.5k102460491
Akzeptiert-Rate: 29%


alt text


Zunächst benötigt man eine Liste mit Werten (z.B. -pi, -3pi/4,..., 3pi)

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
% Liste mit tick-Werten erstellen
\pgfmathsetmacro{\pinum}{3.142} % Rechengenauigkeit
\pgfmathtruncatemacro{\u}{4} % Unterteilungstiefe
% Reichweite der Ticks festlegen
\def\Range{-20,...,20}
% xticklist erstellen
\newcommand{\xticklist}{}% Name reservieren
\let\xticklist=\empty% Liste erstellen
\makeatletter
\foreach \n in \Range
{
\pgfmathparse{\n*\pinum/\u}%
\ifx\empty\xticklist{} \protected@xdef\xticklist{\pgfmathresult}%
\else \protected@xdef\xticklist{\xticklist,\pgfmathresult}%
\fi
}\makeatother
Anzeigen: \xticklist
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Für die gewünschten Darstellungskriterien

alt text

kann man, im Hinblick auf Zähler (Z) und Nenner (N) des Pi-Faktorenbruches, folgendes Ablaufdiagramm verwenden:

alt text

das setzt pgfmath so um:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
xtick/.expanded = {\xticklist},
xticklabel={%
\pgfmathsetmacro{\p}{int(\tick*\u/\pinum)}% pi-Faktor
\pgfmathsetmacro{\Z}{int(\p/gcd(\p,\u))}% Zähler
\pgfmathsetmacro{\Zabs}{int(abs(\Z))}% Zähler-Betrag
\pgfmathsetmacro{\N}{int(\u/gcd(\p,\u))}% Nenner
\pgfmathparse{%
\N == 1 ? (\Z==1 ? "\pi" : (\Z==-1 ? "-\pi" : "\Z\pi")) :%
(\Z==1 ? "\frac{\pi}{\N}" : (\Z==-1 ? "-\frac{\pi}{\N}" :%
(\Z<0 ? "-\frac{\Zabs\pi}{\N}" : "\frac{\Z\pi}{\N}")%
))%
}
$\pgfmathresult$%
%$\frac{\Z}{\N}$% zum Testen
},
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Kleiner Warnhinweis: Die Rechengenauigkeit von pgfmath ist nicht beliebig; z.B. ab Pi-Neuntel Unterteilung kommen Fehler rein.

Im Ergebnis

Beispiel 1:

Öffne in Overleaf
\pgfmathtruncatemacro{\u}{2} % Unterteilungstiefe
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Beispiel 2:

Öffne in Overleaf
\pgfmathtruncatemacro{\u}{7} % Unterteilungstiefe
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Ganzer Code:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
%\documentclass[]{article}
\documentclass[border=5mm, tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
% Eingaben
\pgfmathsetmacro{\xStauchung}{0.58500055}% Stauchung x-Achse
% Liste mit tick-Werten erstellen
\pgfmathsetmacro{\pinum}{3.142} % Rechengenauigkeit
\pgfmathtruncatemacro{\u}{7} % Unterteilungstiefe
% Reichweite der Ticks festlegen
\def\Range{-20,...,20}
% xticklist erstellen
\newcommand{\xticklist}{}% Name reservieren
\let\xticklist=\empty% Liste erstellen
\makeatletter
\foreach \n in \Range
{
\pgfmathparse{\n*\pinum/\u}%
\ifx\empty\xticklist{} \protected@xdef\xticklist{\pgfmathresult}%
\else \protected@xdef\xticklist{\xticklist,\pgfmathresult}%
\fi
}\makeatother
%Anzeigen: \xticklist
% Zeichnen
\pgfmathsetmacro{\xScale}{\xStauchung*\u/pi}%
\begin{tikzpicture}[]
\begin{axis}[
font=\footnotesize,
x = \xScale cm,
%y = 1cm,
axis lines=middle,
xlabel=$x$,xlabel style={anchor=north},
ylabel=$y$,ylabel style={anchor=east},
x axis line style = {-latex}, y axis line style = {-latex},
%
xtick/.expanded = {\xticklist},
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Code für das Ablaufdiagramm:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass[border=5pt]{standalone}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage{tikz}
\usetikzlibrary{matrix,shapes}
\tikzset{%
treenode/.style = {%fill=gray!10,
shape=rectangle,
draw, anchor=center,
%text width=5em,
align=center,
%draw=cyan, very thick,
text=black,
text width=1cm,
%inner sep=1ex
},
startstop/.style = {treenode, rounded corners=7pt},
process/.style = {treenode},
decision/.style = {treenode, diamond, inner sep=0pt},
output/.style={treenode, trapezium,trapezium left angle=60, trapezium right angle=120, font=\sffamily\slshape\tiny},
input/.style={treenode, trapezium,trapezium left angle=120, trapezium right angle=60},
predefprocess/.style = {treenode, path picture={\draw[treenode, -]
([xshift=1mm]path picture bounding box.north west)--([xshift=1mm]path picture bounding box.south west)
([xshift=-1mm]path picture bounding box.north east)--([xshift=-1mm]path picture bounding box.south east);}},
}%
\newcommand{\ja}{-| node [auto=left, near start] {ja}}
\newcommand{\nein}{-| node [auto=right, near start] {nein}}
\begin{document}
\begin{tikzpicture}[scale=0.5,
font=\sffamily\tiny,
>=latex, ->,
%every path/.style={red, very thick},
]
%\pgfgettransform\mytrafo
\def\Start{|[decision]| N=1}
\def\ZEins{|[decision]| Z = 1}
\def\ZnegEins{|[decision]| Z = -1}
\def\Zneg{|[decision]| Z < 0}
\def\ZposI{|[startstop, minimum height=0.85cm]| \frac{Z\pi}{N}}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 02 Mai '18, 20:33

cis's gravatar image

cis
9.5k102460491
Akzeptiert-Rate: 29%

bearbeitet 03 Mai '18, 05:04

Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×731
×298

gestellte Frage: 02 Mai '18, 20:33

Frage wurde gesehen: 7,944 Mal

zuletzt geändert: 03 Mai '18, 05:04

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×