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, 15:36

Lilanarus's gravatar image

Lilanarus
21
Akzeptiert: 0%

bearbeitet 13 Aug, 06:08

Ijon%20Tichy's gravatar image

Ijon Tichy
7.7k11019


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 12 Aug, 22:05

Henri's gravatar image

Henri
13.4k42736

bearbeitet 13 Aug, 17:50

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:

×623
×261
×11
×2
×1

Frage gestellt: 12 Aug, 15:36

Frage wurde angeschaut: 405 Mal

Zuletzt aktualisiert: 13 Aug, 17:50