Graph mit node versehen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Graph mit node versehen

von kannstmasehn » Fr 26. Jun 2015, 20:50

Schautz gut aus! Vielen vielen Dank dafür!

von esdd » Fr 26. Jun 2015, 15:54

Nimm pin statt eine Linie zu zeichnen und dann deren Ende zu beschriften. Außerdem würde ich die Nulllinie einfach nur einzeichnen statt sie mit samples=400 zu plotten.
\documentclass[margin=5pt]{standalone} 
\usepackage{pgfplots}% lädt auch tikz
\usetikzlibrary{intersections} 
\usepgfplotslibrary{units} 
\pgfplotsset{compat = newest} 

\pgfkeys{/pgfplots/linelabel/.style args={#1:#2:#3}{name path global=labelpath,execute at end plot={ 
  \path [name path global = labelpositionline](rel axis cs:#1,0) -- (rel axis cs:#1,1); 
  \path[
    inner sep=.15em,
    font=\scriptsize,
    name intersections={of=labelpath and labelpositionline}
  ] (intersection-1)coordinate[pin=#2:#3];}, 
}} 

\begin{document} 
\begin{tikzpicture} 
  \begin{axis}[
    domain=0:1,
    samples=400,
    xmin=0,xmax=1,xtick={0,0.1,...,1},
    ymin=-20, ymax=20,ytick={-20,-15,...,20},
    %every axis plot={black,no markers},
  ] 
    \draw(current axis.left of origin)--(current axis.right of origin);
    \addplot[linelabel=0.1:100:$\gamma_{yy}$]
      {(2*pi^2+(16-pi^2)*x^2)*4/((pi^2+(16-pi^2)*x^2)^1.5)}; 
    \addplot[linelabel=0.1:above right:$\gamma_{zy}$]
      {pi/4*(pi^2+(32+pi^2)*x^2+(32-2*pi^2)*x^4)/(x*(1-x^2)^0.5)*4/((pi^2+(16-pi^2)*x^2)^1.5)}; 
    \addplot[linelabel=0.8: above left:$4$][domain=0:0.95]
      {(pi^2+(32+pi^2)*x^2+(32-2*pi^2)*x^4)/(1-x^2)*4/((pi^2+(16-pi^2)*x^2)^1.5))}; 
  \end{axis} 
\end{tikzpicture} 
\end{document}
Gruß
Elke

Bild
Dateianhänge
gl_pinlabel.png
gl_pinlabel.png (13.78 KiB) 1037 mal betrachtet

Graph mit node versehen

von kannstmasehn » Fr 26. Jun 2015, 11:11

Moin,

folgendes Problem habe ich:

Ich möchte einen plot bezeichnen. In meinem Minimalbeispiel ist die Variante mit Gamma_zy am besten. Bei den anderen erkennt man, dass die Bezeichnungslinie immer an den Knoten im Westen geht. Meine Frage nun ist, wie ich die Position, an der die Linie von der Bezeichnung weggeht ändern kann. Im Endeffekt geht es mir darum die plot zu bezeichnen, wie es bei Gamma_zy der Fall ist. Andere mögliche Wege sind auch gerne gesehen.

Hier mein Minimalbeispiel:
\documentclass[12pt,a4paper]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{intersections}
\usetikzlibrary{positioning,shadings}

\usepgfplotslibrary{units}
\pgfplotsset{compat = newest}

\pgfkeys{/pgfplots/linelabel/.style args={#1:#2:#3}{name path global=labelpath,execute at end plot={
\path [name path global = labelpositionline]
(rel axis cs:#1,0) --
(rel axis cs:#1,1);
\draw [help lines,text=black,inner sep=0pt,name intersections={of=labelpath and labelpositionline}] (intersection-1) -- +(#2) node [label={#3}] {};},
}}
    
    
\begin{document} 
\begin{tikzpicture}
    \begin{axis}[domain=0:1,samples=400, xmin=0,xmax=1,xtick={0,0.1,...,1},ymin=-20, ymax=20,ytick={-20,-15,...,20}]
		\addplot+[black,mark=none, thin] {0};
        \addplot+[black,mark=none,linelabel=0.1:{90:0.3cm}:{[black]right:$\gamma_{yy}$}] {(2*pi^2+(16-pi^2)*x^2)*4/((pi^2+(16-pi^2)*x^2)^1.5)};
        \addplot+[black,mark=none,linelabel=0.1:{45:0.75cm}:{[black]right:$\gamma_{zy}$}] {pi/4*(pi^2+(32+pi^2)*x^2+(32-2*pi^2)*x^4)/(x*(1-x^2)^0.5)*4/((pi^2+(16-pi^2)*x^2)^1.5)};
        \addplot+[black,mark=none,linelabel=0.8:{135:0.75cm}:{[black]right:$4$}][domain=0:0.95] {(pi^2+(32+pi^2)*x^2+(32-2*pi^2)*x^4)/(1-x^2)*4/((pi^2+(16-pi^2)*x^2)^1.5))};
            \end{axis}
\end{tikzpicture}
\end{document}


Vielen Dank schonmal!

Nach oben