Hallo!

Ich bin noch relativ neu mit Latex und besonders mit pgfplots unterwegs und habe hier ein kleines Problem, für das ich bei anderen,ähnlichen Fragen noch keine Lösung gefunden habe.

alt text

Öffne in Overleaf
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween} 
\pgfplotsset{compat=1.10}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture} 
\begin{axis}[axis lines=middle,xlabel=$x$,ylabel=$y$,
    xtick=\empty,ytick=\empty,enlargelimits=0.05,grid,domain=-2:2,no marks]

\addplot[name path=P,green]{3^x};

\draw[blue,very thin](250,800)node[above]{$a$}--(250,-10);
\draw[blue,very thin](350,800)node[above]{$b$}--(350,-10);

\end{axis}

\end{tikzpicture}

\end{document}

Ich habe mir diesen Abschnitt kurz aus meinem Dokument rausgeholt, um es kurz zu halten. Die Achsenbeschriftung ist mir in diesem Fall vollkommen egal.

Jedenfalls frage ich mich, wie man das mit pgfplots macht, dass unter der Kurve (y=3^x) die Fläche im Bereich zwischen a und b gefüllt wird.

Eine kleine technische Frage habe ich auch noch. Ich habe hier ein Koordinatensystem, in dem die Maße nicht ganz so passend sind. Die y-Achse im Bild ist im Code erst bei x=200 oder so. Wie kann man das noch einstellen, dass die y-Achse auch im Code bei x=0 ist?

Vielen Dank für die Hilfe!

LG Lilanarus

gefragt 12 Aug '18, 21:36

Lilanarus's gravatar image

Lilanarus
314
Akzeptiert-Rate: 0%

bearbeitet 13 Aug '18, 12:08

Ijon%20Tichy's gravatar image

Ijon Tichy
9.6k31227


Du musst axis cs: für die Koordinaten verwenden, dann funktioniert auch fill between so wie in der Anleitung beschrieben.

Öffne in Overleaf
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween} 
\pgfplotsset{compat=1.10}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture} 
  \begin{axis}[
    axis lines=middle,
    xlabel=$x$, ylabel=$y$,
    xtick=\empty, ytick=\empty,
    enlargelimits=0.05,
    domain=-2:2,
    no marks]

    \path[name path=X] (axis cs:\pgfkeysvalueof{/pgfplots/xmin},0)
      -- (axis cs:\pgfkeysvalueof{/pgfplots/xmax},0);
    \addplot[name path=P,green]{3^x};

    \addplot fill between [of=P and X, soft clip={domain=.5:1.5}];

    \draw[blue,very thin] (axis cs:.5,8) node[above]{$a$} -- (axis cs:.5,0);
    \draw[blue,very thin] (axis cs:1.5,8) node[above]{$b$} -- (axis cs:1.5,0);

  \end{axis}
\end{tikzpicture}

\end{document}

alt text

Alternativ kann man auch compat=newest verwenden und axis cs: weglassen. Das Ergebnis ist das gleiche.

Öffne in Overleaf
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween} 
\pgfplotsset{compat=newest}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture} 
  \begin{axis}[
    axis lines=middle,
    xlabel=$x$, ylabel=$y$,
    xtick=\empty, ytick=\empty,
    enlargelimits=0.05,
    domain=-2:2,
    no marks]

    \path[name path=X] (\pgfkeysvalueof{/pgfplots/xmin},0)
      -- (\pgfkeysvalueof{/pgfplots/xmax},0);
    \addplot[name path=P,green]{3^x};

    \addplot fill between [of=P and X, soft clip={domain=.5:1.5}];

    \draw[blue,very thin] (.5,8) node[above]{$a$} -- (.5,0);
    \draw[blue,very thin] (1.5,8) node[above]{$b$} -- (1.5,0);

  \end{axis}
\end{tikzpicture}

\end{document}
Permanenter link

beantwortet 13 Aug '18, 04:05

Henri's gravatar image

Henri
14.6k53340
Akzeptiert-Rate: 46%

bearbeitet 13 Aug '18, 23:50

2

Naja, Du könntest auch zu einer neueren Version wechseln, z.B. \pgfplotsset{compat=1.16}, und dann das axis cs: weglassen. Das steht in der neueren Dokumentation auch so drin... ;-)

(13 Aug '18, 04:28) Community
2

Schon. Der Kommentar war als Ergänzung gedacht. Mit der Hoffnung, dass die Leute zu den neueren Versionen wechseln (und ein wenig drauf achten, wenn sie aus älteren Beispielen Codes kopieren).

(13 Aug '18, 05:16) Community

Ich würde gerne meine Kommentare löschen, aber Dich darum bitten, vorher Deine Antwort um einen Kommentar zu ergänzen, der sagt, dass man sich das axis cs: in den neueren Versionen sparen kann.

(13 Aug '18, 21:35) Community
Deine Antwort
Vorschau umschalten

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

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×689
×280
×12
×2
×2

gestellte Frage: 12 Aug '18, 21:36

Frage wurde gesehen: 1,968 Mal

zuletzt geändert: 13 Aug '18, 23:50