Ich habe hier ein Plot aus einer Datenreihe gezeichnet:

Öffne in Overleaf
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage[normalem]{ulem} 
\usepackage{tikz} 
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{patterns}
\usepgfplotslibrary{fillbetween}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
xmin=0,
ymin=0,
xmax=20000,
scaled y ticks=base 10:-3,
]
\addplot[mark = none, name path=A] table from {mwe.txt};
   \begin{scope}[green]
      \draw[black, name path=B] (axis cs:0,599) -- (axis cs:2701,599);
       \end{scope}

\addplot[green] fill between[of=A and B,
split,
every segment no 0/.style=
{pattern color=gray!50,
pattern=north east lines}];
%every segment no 1/.style=
%{pattern=north west lines}];
\end{axis}
\end{tikzpicture}

\end{document}

alt text

Hier ist die Datei: https://1drv.ms/t/s!AFcQ3ZGfWrfqgZxL

Ich möchte jetzt folgendes: Es soll eine Linie von, sagen wir mal y=600 bis zum Plot gezeichnet werden. Und dieses Dreieck, was diese horizontale Linie aufspannt, soll ausgefüllt oder irgendwie schraffiert werden.

EDIT: Habe es soweit geschafft. Allerdings zeichnet er weiter in grün. Das will ich natürlich nicht. Ich möchte nur die schraffierte Fläche. Was tun?

EDIT2: Wenn ich unter \addplot[green] aus "green", "white" geht es. Naja, was heißt es geht. Man sieht die Fläche nicht mehr ;)

Wieso zeichnet er überhaupt die Fläche? Ich habe doch die Zeilen mit segment no 1... auskommentiert.

gefragt 19 Mär, 17:14

SF6's gravatar image

SF6
807
Akzeptiert: 40%

bearbeitet 20 Mär, 05:31

saputello's gravatar image

saputello
19.8k22957

Bitte beachte erneut, dass es Themen wie "zeichnen in" nicht geben kann, weil das in die einzelnen Themen "in" und "zeichnen" zerfällt (die dann auch noch ihre Reihenfolge beliebig ändern können). Beachte außerdem, dass es sinnvoll ist, automatisch vorgeschlagene Themen (im Beispiel pgfplots), die passend sind, auch zu verwenden, statt neue Themen (im Beispiel pgfplot) zu verwenden.

(20 Mär, 02:36) saputello

Du brauchst (und solltest) in den Titel übrigens keine Updateinfos eintragen. Dass etwas geändert wurde, sehen wir in der aktuellen Übersicht an der Stellung und dem Datum. Was geändert wurde, sehen wir ggf. in der Historie.

Ich bin folgerichtig selbst auch kein Freund von "EDIT"-Hinweisen. Für das Archiv sind Fragen aus einem Guss IMHO besser. Aber das ist nur meine Meinung.

Vielleicht im Hinterkopf einfach behalten: Wie wäre die Frage am besten in einem Wie-geht-das-Buch gestellt?

(20 Mär, 05:30) saputello

Dein MWE einschließlich der verlinkten Daten erzeugt leider nicht das in der Frage eingefügte Bild. Ich nutze deshalb etwas andere Werte. Und ich lasse auch die für das Problem nicht benötigten Pakete weg.

Bei Verwendung der Option split werden alle Segmente, für die keine speziellen Einstellungen vorgenommen wurden, mit der aktuellen Plotfarbe gefüllt. Diese Plotfarbe gibst Du im optionalen Argument von \addplot mit green vor. Wenn Du keine automatische Füllung der Segmente möchtest, dann ändere das zu fill=none.

Öffne in Overleaf
\begin{filecontents*}{mwe.txt}
1  734
101  729
201  724
301  719
401  714
501  709
601  704
701  699
801  694
901  689
1001  684
1101  679
1201  674
1301  669
1401  664
1501  659
1601  654
1701  649
1801  644
\end{filecontents*}

\documentclass[margin=5pt]{standalone}

\usepackage{pgfplots}% lädt auch tikz
\pgfplotsset{compat=newest}
\usetikzlibrary{patterns}
\usepgfplotslibrary{fillbetween}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
xmin=0,
ymin=600,
xmax=1800,
scaled y ticks=base 10:-3,
]
\addplot[mark = none, name path=A] table from {mwe.txt};
\draw[black, name path=B] (0,699) -- (2000,699);

\addplot
  [fill=none]% <- damit nicht alle Segmente automatisch gefüllt werden
  fill between[
    of=A and B,
    split,
    every segment no 0/.style=
    {pattern color=gray!50,
    pattern=north east lines}
  ];
\end{axis}
\end{tikzpicture}
\end{document}

alt text


Vielleicht suchst Du aber eher etwas wie

alt text

Öffne in Overleaf
\begin{filecontents*}{mwe.txt}
1  734
101  729
201  724
301  719
401  714
501  709
601  704
701  699
801  694
901  689
1001  684
1101  679
1201  674
1301  669
1401  664
1501  659
1601  654
1701  649
1801  644
\end{filecontents*}

\documentclass[margin=5pt]{standalone}

\usepackage{pgfplots}% lädt auch tikz
\pgfplotsset{compat=newest}
\usetikzlibrary{patterns}
\usepgfplotslibrary{fillbetween}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
xmin=0,
ymin=600,
xmax=1800,
scaled y ticks=base 10:-3,
]
\addplot[mark = none, name path=A] table from {mwe.txt};
\path[name path=B] (0,699) -- (2000,699);
\draw[green,name intersections={of= A and B,by={S}},name path=C](S-|0,0)--(S);
\addplot
  [pattern color=gray!50,pattern=north east lines]
  fill between[of=A and C];
\end{axis}
\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 21 Mär, 10:38

esdd's gravatar image

esdd
15.3k53652

bearbeitet 21 Mär, 11:04

Danke, da habe ich wohl einfach das "split" falsch verstanden. War ja einfacher, als gedacht.

(21 Mär, 13:16) SF6
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:

×194
×23
×4

Frage gestellt: 19 Mär, 17:14

Frage wurde angeschaut: 758 Mal

Zuletzt aktualisiert: 21 Mär, 13:16