Seite 1 von 1

Achsenbeschriftung Tikz

Verfasst: Mo 28. Dez 2015, 19:41
von icecoldkilla
Hey,

ich bin Latex Neuling und hab bin gerade dabei eine Grafik nachzustellen, es soll sich dabei um diese Grafikhttps://www.energie-lexikon.info/img/ph ... erung1.png.

Bin soweit zufrieden, allerdings komm ich mit der Achsenbeschriftung gar nicht zurecht. Hab in der TikZ Doku gelesen, aber da funktionieren die Beispiele auch nicht richtig gut bei mir.

Würd mich freuen, wenn mir wer Tipps bezüglich der Achsenbeschriftung geben kann
und wenn wer über den Code drüber schauen kann. Geht es eventuell noch einfacher als wie ich das gemacht habe?
\documentclass[parskip=full]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[autostyle=true,german=quotes]{csquotes}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage{booktabs}
\usepackage{marvosym}
\usepackage{float}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{gensymb}
\usepackage{todonotes}
\usepackage{amsmath, amsfonts, amssymb}
\usepackage[per-mode=fraction, decimalsymbol=comma]{siunitx}
\usepackage{babelbib}
\usepackage{textcomp}
\usepackage[hidelinks]{hyperref}


\begin{document}
	
	\begin{tikzpicture}[domain=0:14] 
		\draw[step=1, gray, very thin, loosely dotted] (0,-2.5) grid (14,2.5);
		\draw[->, thick] (-0.2,0) -- (14.3,0) node[right] {$t$};
		\draw[->, thick] (0,-2.6) -- (0,2.6) node[above] {$V(t)$}; 
	
		\draw [color=black, samples=300, dashed] plot (\x, {2*sin(\x r});
	
		\begin{scope}[color=red, samples=10, very thick]
			\draw [domain=2.3:3.1415] plot (\x, {2*sin(\x r});
			\draw [domain=5.441:6.2841] plot (\x, {2*sin(\x r});
			\draw [domain=8.583:9.4247] plot (\x, {2*sin(\x r});
			\draw [domain=11.7247:12.566] plot (\x, {2*sin(\x r});
		\end{scope}
	
	
		\begin{scope}[color=red, very thick]
			\draw (0,0)--(2.3,0);
			\draw (2.3,0)--(2.3,1.4914);
			\draw (5.441,0)--(5.441,-1.4914);
			\draw (3.1415,0)--(5.441,0);
			\draw (8.583,0)--(8.583,1.4914);
			\draw (6.2841,0)--(8.583,0);
			\draw (11.7247,0)--(11.7247,-1.4914);
			\draw (9.4247,0)--(11.7247,0);
			\draw (12.566,0)--(14,0);
			\end{scope}	
		\end{tikzpicture}	
	
\end{document}

Verfasst: Do 7. Jan 2016, 14:00
von icecoldkilla
PUSH

Verfasst: Do 7. Jan 2016, 18:47
von iTob
Hi,

eine Möglichkeit wäre es, mit \foreach die Einteilungen selber zu zeichnen. Bei der Gelegenheit habe ich deine Plot-Operation ebenfalls verinfacht/verallgemeinert (und alles aus deinem Beispiel geschmissen, was hier nicht relavat ist …):
\documentclass[parskip=full]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage{tikz}

\begin{document}
   \begin{tikzpicture}[domain=0:14] 
      \draw[step=1, thin, loosely dotted] (0,-2.5) grid (14,2.5); 
      \draw[->, thick] (-0.2,0) -- (14.3,0) node[right] {$t$}; 
      \draw[->, thick] (0,-2.6) -- (0,2.6) node[above] {$V(t)$}; 
    
      \draw [color=black, samples=50, dashed] plot (\x, {2*sin(\x r}); 
    
      \draw [red, samples = 50, very thick]
         (0,0) foreach \n in {1,...,4} {
               -- (\n*pi-pi/4,0) -- plot [domain=\n*pi-pi/4:\n*pi] (\x, {2*sin(\x r})
            };
      
      \foreach \x/\l in {0/0,pi/\pi,2*pi/2\pi} {
         \draw [thick] (\x,0.15) -- (\x,-0.15)
            node [below, fill=white, inner sep=2pt] {$\l$};
      }
      % oder auch
%      \foreach \x in {0,1,...,14} {
%         \draw [thick] (\x,0.15) -- (\x,-0.15)
%            node [below, fill=white, inner sep=2pt] {$\x$};
%      }
   \end{tikzpicture}
\end{document}
Außerdem habe ich dein Gitter mal auf Schwarz und etwas dicker gestellt, denn so ist es praktisch unsichtbar (und im Druck könnte es passieren, dass es tatsächlich ganz verschwindet)

Alternativ kannst du mit pgfplots arbeiten, das fügt Achsen und Co automatisch hinzu, allerdings hab ich auf die schnelle keine Möglichkeit gefunden, den roten Plot damit zu zeichnen …

[/p]

Verfasst: Fr 8. Jan 2016, 12:13
von esdd
iTob hat geschrieben: Alternativ kannst du mit pgfplots arbeiten, das fügt Achsen und Co automatisch hinzu, allerdings hab ich auf die schnelle keine Möglichkeit gefunden, den roten Plot damit zu zeichnen …
Mit einer aktuellen pgfplots Version kann man den Code für roten Plot einfach von Dir übernehmen ;-)
\documentclass[parskip=full]{scrbook} 

\usepackage[T1]{fontenc} 
\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel} 
\usepackage{lmodern} 
\usepackage{pgfplots}
\pgfplotsset{compat=1.12} 

\begin{document} 

\begin{tikzpicture}
  \begin{axis}[
    x=1cm,y=1cm,
    xlabel=$t$,ylabel=$V(t)$,
    domain=0:14,xmin=0,xmax=14,
    ytick={-2,...,2},
    grid=major,
    grid style=dashed
  ]
    \addplot[dashed,thick,samples=100] {2*sin(deg(x))};
    \draw(current axis.left of origin)--(current axis.right of origin);
    \draw [red,thick, samples = 50, very thick] 
      (0,0) foreach \n in {1,...,4} { 
         -- (\n*pi-pi/4,0) -- plot [domain=\n*pi-pi/4:\n*pi] (\x, {2*sin(\x r}) 
      }--(14,0); 
  \end{axis}
\end{tikzpicture}
\end{document}
Bild

Verfasst: Fr 8. Jan 2016, 14:07
von iTob
Danke für die Ergänzung. Das hatte ich probiert … vielleicht sollte ich meine Distribution auch mal wieder aktualisieren 8) :roll:

Verfasst: Fr 8. Jan 2016, 16:37
von Bartman
@icecoldkilla

Das Einheitenzeichen der elektrischen Spannung ist zwar V, aber das Formelzeichen ist U, also an Deiner y-Achse: U(t).

Müssen die Zahlenwerte der Achsenbeschriftungen aus Deiner Abbildung übernommen werden?

Verfasst: Di 12. Jan 2016, 22:04
von icecoldkilla
Wow, super, vielen Dank euch.
Hatte mir schon gedacht, dass man die allgemeine Kurenform vereinfachen kann. Naja, Anfänger eben :)