Markieren von Bereichen zwischen einer Achse und einem Graph

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Markieren von Bereichen zwischen einer Achse und einem Graph

von PeterPan87 » Mo 28. Aug 2017, 09:18

Hallo esdd,
vielen Dank! Die Abb sieht nun genau so aus wie ich es mir vorgestellt habe.
Interessant war das ich \usepackage{transparent} in der Präambel hatte, erst als ich es deaktiviert habe konnte die Abb. korrekt darstellen.
Weis jemand woran das liegt?

VG

von esdd » So 27. Aug 2017, 20:43

Zunächst solltest Du Dir unbedingt Was bedeutet die Kompatibilitätsangabe "compat=..." bei pgfplots?. Die derzeit aktuelle pgfplots Version ist eigentlich 1.15. Damit auch der Overleaf-Link funktioniert, verwende ich in dem folgenden Beispiel aber 1.14.

Seit Version 1.11 ist axis cs das Standardkoordinatensystem der axis Umgebung.

In Deinem Beispiel kannst Du immer die komplette Achse als Pfad verwenden und da die Geraden die Achsen schneiden, brauchst Du nicht mal soft clip:


\documentclass[margin=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}% <- immer compat setzen!
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture} 
\begin{axis}[
  domain=0:100,% geändert
  %samples=400,% für Geraden würde sogar samples=2 reichen
  xmin=0, xmax=100,
  ymin=0, ymax=100,
  xlabel = $x~Achse$, ylabel = $y~Achse$
]
\path[name path=axisy] (0,100) -- (100,100);
\path[name path=axisx] (0,0) -- (100,0);
\addplot+[mark=none, name path=A] {\x+30}
  node[above, rotate=40] at (20,70) {$Instabil$}
  node[above, color= black, rotate=40] at (50,40) {$Stabil$}
;
\addplot+[mark=none, name path=B] {\x-30} 
  node[below, rotate=40] at (75,20) {$Instabil$}
;

\addplot [blue,fill opacity=0.05]
  fill between[of=A and axisy]
;
\addplot [red,fill opacity=0.05]
  fill between[of=B and axisx]
;
\end{axis} 
\end{tikzpicture}
\end{document}
Bild
Dateianhänge
gl_fillbetween.png
gl_fillbetween.png (20.62 KiB) 1832 mal betrachtet

Markieren von Bereichen zwischen einer Achse und einem Graph

von PeterPan87 » So 27. Aug 2017, 16:00

Hallo liebe Community,

ich habe folgendes Problem. Ich möchte gerne den Bereich über der blauen Gerade und den Bereich unter der Roten Gerade ausfüllen. Entweder mit einer Schraffur oder komplett leicht transparent. In etwa so wie es am linken Rand zu erkennen ist. Leider habe ich die Logik nicht verstanden mit der man den Bereich angibt in der die Markierung platziert werden soll. Ein lauffähiges Minimalbeispiel habe ich euch unten angegeben.

Vielen lieben Dank für eure Hilfe und schönen Sonntag
\documentclass[margin=10pt]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{intersections}
\usepgfplotslibrary{fillbetween}
\begin{document}
		
	\begin{tikzpicture} 
	\begin{axis}[domain=0.125:220, samples=400, xmin=0, xmax=100, ymin=0, ymax=100, xlabel = $x~Achse$, ylabel = $y~Achse$]
	\path[name path=axisy] (axis cs:0,100) -- (axis cs:70,100);
	\path[name path=axisx] (axis cs:30,0.01) -- (axis cs:100,70);
	\addplot+[mark=none, name path=A] {\x+30} node[above, rotate=40] at (20,100) {$Instabil$} node[above, color= black, rotate=40] at (50,70) {$Stabil$};
	\addplot+[mark=none, name path=B] {\x-30} node[below, rotate=40] at (75,55) {$Instabil$};
	
	 \addplot [
	 thick,
	 color=blue,
	 fill=blue, 
	 fill opacity=0.05
	 ]
	 fill between[
	 of=A and axisy,
	 soft clip={domain=0:1},
	 ];
	\end{axis} 
	\end{tikzpicture}
\end{document}

Nach oben