Mir fällt auf, dass -teils auch bei komplizierten Lösungen, die ich gesehen habe- x und ylabel oft nicht gescheit platziert sind. Wie kann ich das mit der Lib decorations verwirklichen.

alt text

Open in Online-Editor
\documentclass[border=2pt, varwidth]{standalone}
\usepackage{pgfplots}
\usepackage{amsmath, amssymb}
\usetikzlibrary{arrows, decorations.markings}
\pgfplotsset{compat=1.10}

\begin{document}

\begin{tikzpicture}[
postaction={decoration = {markings, mark = at position 0.9 with {\node[below, red] {A};}}}
]
\begin{axis}[
    title={\normalsize $f(x) = \ln(x^2-9), ~~ \mathbb{D}_f = \mathbb{R}     
\setminus [-3;3]$ },
      axis y line = middle,
    axis x line = middle,
      axis line style = {-latex, thick},
    xtick={-10,...,10}, 
%   ytick={-10,...,10}, 
      samples     = 200,
      xmin = -10.5, xmax=10.5,
      ymin = -2, ymax=5,
      enlarge x limits={abs=0.5,upper},
      enlarge y limits={abs=5,lower},
      xlabel={\normalsize $x$},
      xlabel style={xshift=0.25cm, yshift=-0.5cm},
      ylabel={\normalsize $y$},
      ylabel style={xshift=-0.5cm, yshift=0.25cm},
    ]
    \addplot[blue,  thick, domain=-3:-9] {-x^2+1}; % WIrd nicht gezeichnet?
    \addplot[blue,  thick, domain=-3:9] {ln(x^2-9)};
  \end{axis}
\end{tikzpicture}

\end{document}

gefragt 28 Dez '15, 12:00

cis's gravatar image

cis
5.2k746142
Akzeptiert: 68%

Meinst Du mit x und y Label die Achsenlabel? Dann solltest Du uns noch verraten, was Du unter "gescheit plaziert" verstehst.

Wenn man sich die x-Achse anschaut, sind dort zu viele Ticklabel. Entweder Du verwendest weniger oder machst die Zeichnung breiter oder verwendest eine kleinere Schrift.

Das \addplot[blue, thick, domain=-3:-9] {-x^2+1}; nicht zu sehen ist, ist auch klar. Der maximale Funktionswert wäre -8 und wenn Du ymin=-2 setzt, liegt die Kurve außerhalb des Darstellungsbereiches.

(28 Dez '15, 17:11) esdd

Ne, ich meine einfach die Achsenberschriftung x und y. Und mit der habe ich bei pgfplots ständig probleme. Die sollen an der stelle stehen, wie im Bild. Hier klappt alles. Wenn ich aber anfange Skalierungen zu ändern, stimmt die Justierung xlabel style={xshift=0.25cm, yshift=-0.5cm}, nimmer. Deshalb frage ich mich, ob man x und y nicht einfach als Dekoration setzen könnte.

(28 Dez '15, 19:38) cis

Update

Da @Henri hier heraus gefunden hat, dass @cis die Beschriftung der x-Achse nicht nur unterhalb des Pfeiles, sondern auch rechtsbündig mit diesem haben will und die Beschriftung der y-Achse sich mit ihrem oberen Rand ebenfalls an der Pfeilspitze ausrichten soll, ist hier noch ein aktualisierter Vorschlag:

Open in Online-Editor
xlabel style={
  yshift=-.5*\pgfkeysvalueof{/pgfplots/major tick length},
  anchor=north east,
  inner xsep=0pt
},
ylabel style={
  xshift=-.5*\pgfkeysvalueof{/pgfplots/major tick length},
  anchor=north east,
  inner ysep=0pt
},

alt text

Code:

Open in Online-Editor
    \documentclass[border=2pt]{standalone}
    \usepackage{pgfplots}
    \usepackage{amsmath, amssymb}
    \pgfplotsset{compat=1.10}

    \begin{document}
    \begin{tikzpicture}
    \begin{axis}[
        title={\normalsize $f(x) = \ln(x^2-9),
          ~~ \mathbb{D}_f = \mathbb{R}\setminus [-3;3]$ },
        axis lines = middle,
        axis line style = {-latex, thick},
        xtick={-8,-6,...,8}, 
        samples     = 200,
        xmin = -10.5, xmax=10.5,
        ymin = -2, ymax=5,
        enlarge x limits={abs=0.5,upper},
        enlarge y limits={abs=5,lower},
        xlabel={\normalsize $x$},
        xlabel style={
          yshift=-.5*\pgfkeysvalueof{/pgfplots/major tick length},
          anchor=north east,
          inner xsep=0pt
        },
        ylabel={\normalsize $y$},
        ylabel style={
          xshift=-.5*\pgfkeysvalueof{/pgfplots/major tick length},
          anchor=north east,
          inner ysep=0pt
        },
      ]
      \addplot[blue,thick,domain=-3:9] {ln(x^2-9)};
      \node[red,
        at={(xticklabel* cs:.8)},
        yshift=-.5*\pgfkeysvalueof{/pgfplots/major tick length},
        anchor=north
        ] {A};
      \end{axis}
      \draw[red](current axis.south west)rectangle(current axis.north east);
    \end{tikzpicture}
    \end{document}

Originalantwort

Vielleicht verstehe ich die Frage nicht richtig, aber ich vermute, dass Du eigentlich etwas wie

Open in Online-Editor
    xlabel style={
      yshift=-.5*\pgfkeysvalueof{/pgfplots/major tick length},
      anchor=north},
    ylabel style={
      xshift=-.5*\pgfkeysvalueof{/pgfplots/major tick length},
      anchor=east},

suchst. Dabei hängt die Verschiebung dann nur noch von der Länge der Ticks ab und davon ob für xtick align der Wert inside oder outside oder wie hier center eingestellt ist. Da xlabel und ylabel sowieso als Noden eingefügt werden, macht es meiner Meinung nach nicht viel Sinn Beschriftungsnoden als decoration einzufügen.

Wenn Du die Label an einem anderen Punkt der Achsen anbringen möchtest, kannst Du das Koordinatensystem xticklabel* cs bzw. yticklabel* cs nutzen:

alt text

Code:

Open in Online-Editor
\documentclass[border=2pt]{standalone}
\usepackage{pgfplots}
\usepackage{amsmath, amssymb}
\pgfplotsset{compat=1.10}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    title={\normalsize $f(x) = \ln(x^2-9),
      ~~ \mathbb{D}_f = \mathbb{R}\setminus [-3;3]$ },
    axis lines = middle,
    axis line style = {-latex, thick},
    xtick={-8,-6,...,8}, 
    samples     = 200,
    xmin = -10.5, xmax=10.5,
    ymin = -2, ymax=5,
    enlarge x limits={abs=0.5,upper},
    enlarge y limits={abs=5,lower},
    xlabel={\normalsize $x$},
    xlabel style={
      yshift=-.5*\pgfkeysvalueof{/pgfplots/major tick length},
      anchor=north},
    ylabel={\normalsize $y$},
    ylabel style={
      xshift=-.5*\pgfkeysvalueof{/pgfplots/major tick length},
      anchor=east},
  ]
  \addplot[blue,thick,domain=-3:9] {ln(x^2-9)};
  \node[red,
    at={(xticklabel* cs:.8)},
    yshift=-.5*\pgfkeysvalueof{/pgfplots/major tick length},
    anchor=north
    ] {A};
  \end{axis}
\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 29 Dez '15, 18:02

esdd's gravatar image

esdd
13.4k52849

bearbeitet 03 Feb, 14:26

Ich suche egtlich nur einen konsitenten Weg x und y an die Pfeilspitzen der Achsen zu schreiben. -

(29 Dez '15, 18:11) cis
2

Falls "an die Pfeilspitzen der Achsen" heißt x unter die Pfeilspitze der x-Achse bzw. y links neben die Pfeilspitze de y-Achse, dann tun das doch eigentlich schon xlabel style={anchor=north} bzw. ylabel style={anchor=east}?

(29 Dez '15, 18:47) esdd
1

@esdd Nach ungefähr drei verschiedenen Fragen zu dem Thema habe ich heraus gefunden, dass das hier gewünscht ist, also xlabel style={anchor=north east,inner xsep=0pt}, ylabel style={anchor=north east,inner ysep=0pt}.

(03 Feb, 12:28) Henri

@Henri Genau das hätte ich ihm auch angeboten, wenn nicht auf dem Bild in seiner Frage etwas anderes zu sehen gewesen wäre - verbunden mit der Aussage, dass es so aussehen soll ...

(03 Feb, 12:43) esdd

Ich mach immer alles falsch :( :()

(03 Feb, 13:34) cis

So schlimm ist das nun auch wieder nicht. Jedenfalls habe ich das jetzt noch in die Antwort hier übernommen.

(03 Feb, 14:31) esdd
Ergebnis 5 von 6 Alle anzeigen
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

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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:

×464
×148
×7

Frage gestellt: 28 Dez '15, 12:00

Frage wurde angeschaut: 835 Mal

Zuletzt aktualisiert: 03 Feb, 14:31