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, 18:00

cis's gravatar image

cis
9.5k74452491
Akzeptiert-Rate: 29%

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, 23: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.

(29 Dez '15, 01: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 30 Dez '15, 00:02

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

bearbeitet 03 Feb '16, 20:26

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

(30 Dez '15, 00: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}?

(30 Dez '15, 00: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 '16, 18: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 '16, 18:43) esdd

Ich mach immer alles falsch :( :()

(03 Feb '16, 19:34) cis

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

(03 Feb '16, 20:31) esdd
Ergebnis 5 von 6 show 1 more comments
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:

×728
×296
×8

gestellte Frage: 28 Dez '15, 18:00

Frage wurde gesehen: 12,381 Mal

zuletzt geändert: 03 Feb '16, 20:31