von Linuil » Fr 13. Sep 2013, 12:47
Hallo,
ich habe mir (etwas umständlich denke ich) folgenden Plot definiert.
Jetzt gefällt mir der Plot soweit, ich würde nur gerne die Legende außerhalb des Plotes haben, die die gelbe, schraffierte Fläche als Stabilitätsgebiet ausweist.
Wie mache ich das?
Genauer: Ich hätte in der Legende gerne ein kleines gelb ausgefülltes und schwarz schraffiertes Quadrat und daneben das Wort Stabilitätsgebiet.
(Anmerkung: Wenn man den Plot irgendwie einfacher erstellen kann, bin ich für Tipps dankbar. Das Pattern für Streifen gefällt mir nicht, da die Streifen dort zu klein und hauptsächlich zu eng sind)
\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\usepackage{pgfplots}
\begin{document}
%
\begin{tikzpicture}
%
\begin{axis}[axis on top = true,
width= 6cm, height =6cm, xmin = -3, xmax = 3, ymin=-3, ymax =3,
xtick={-2,-1,0,1,2}, ytick={-1,0,1},xlabel={Re(z)}, ylabel = {Im(z)}]
\begin{scope}% wichtig damit die Wirkung von clip begrenzt wird
% Schneiden und Füllen der eigentlichen Form
\clip[postaction={fill=yellow,fill opacity=0.4}](axis cs:-3,-3) -- (axis cs:-3,3) -- (axis cs:3,3) -- (axis cs:3,-3) -- (axis cs:-3,-3);
% Zeichnen der Streifen
\foreach \x in {-9,-8.5,...,3}{
\edef\temp{ \noexpand
\addplot[black!60, samples =4, domain=\x:\x+6]{x-3-\x};}
\temp
}
\end{scope}
\addplot[yellow!40, fill=white, thick, samples=100, domain=0:2*pi]({1+sin(deg(x))} , {cos(deg(x))});
\draw[black!80](axis cs: -3,0) -- (axis cs: 3,0);
\draw[black!80](axis cs: 0,-3) -- (axis cs: 0,3);
\foreach \x in {-2,-1,...,2}
{
\edef \temp{ \noexpand
\addplot[black!80, samples=2,domain=-0.1:0.1]{\x}; }
\temp
}
\foreach \x in {-2,-1,...,2}
{
\edef \temp{ \noexpand
\draw[black!80](axis cs: \x,-0.1) -- (axis cs: \x, 0.1); }
\temp
}
\end{axis}
\end{tikzpicture}
%
\end{document}
Vielen Dank für eure Hilfe!
Linuil
Hallo,
ich habe mir (etwas umständlich denke ich) folgenden Plot definiert.
Jetzt gefällt mir der Plot soweit, ich würde nur gerne die Legende außerhalb des Plotes haben, die die gelbe, schraffierte Fläche als Stabilitätsgebiet ausweist.
Wie mache ich das?
Genauer: Ich hätte in der Legende gerne ein kleines gelb ausgefülltes und schwarz schraffiertes Quadrat und daneben das Wort Stabilitätsgebiet.
(Anmerkung: Wenn man den Plot irgendwie einfacher erstellen kann, bin ich für Tipps dankbar. Das Pattern für Streifen gefällt mir nicht, da die Streifen dort zu klein und hauptsächlich zu eng sind)
[code]
\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\usepackage{pgfplots}
\begin{document}
%
\begin{tikzpicture}
%
\begin{axis}[axis on top = true,
width= 6cm, height =6cm, xmin = -3, xmax = 3, ymin=-3, ymax =3,
xtick={-2,-1,0,1,2}, ytick={-1,0,1},xlabel={Re(z)}, ylabel = {Im(z)}]
\begin{scope}% wichtig damit die Wirkung von clip begrenzt wird
% Schneiden und Füllen der eigentlichen Form
\clip[postaction={fill=yellow,fill opacity=0.4}](axis cs:-3,-3) -- (axis cs:-3,3) -- (axis cs:3,3) -- (axis cs:3,-3) -- (axis cs:-3,-3);
% Zeichnen der Streifen
\foreach \x in {-9,-8.5,...,3}{
\edef\temp{ \noexpand
\addplot[black!60, samples =4, domain=\x:\x+6]{x-3-\x};}
\temp
}
\end{scope}
\addplot[yellow!40, fill=white, thick, samples=100, domain=0:2*pi]({1+sin(deg(x))} , {cos(deg(x))});
\draw[black!80](axis cs: -3,0) -- (axis cs: 3,0);
\draw[black!80](axis cs: 0,-3) -- (axis cs: 0,3);
\foreach \x in {-2,-1,...,2}
{
\edef \temp{ \noexpand
\addplot[black!80, samples=2,domain=-0.1:0.1]{\x}; }
\temp
}
\foreach \x in {-2,-1,...,2}
{
\edef \temp{ \noexpand
\draw[black!80](axis cs: \x,-0.1) -- (axis cs: \x, 0.1); }
\temp
}
\end{axis}
\end{tikzpicture}
%
\end{document}
[/code]
Vielen Dank für eure Hilfe!
Linuil