pgfplots Beschriftung einzelner Datenpunkte

Tabellen und Grafiken erstellen und anordnen


esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Irgendwie kommt er da mit den name path global Bezeichnungen durcheinander. Wenn du für jedes Diagramm für diese Bezeichnungen andere Namen wählst, klappt es.
Gruß
Elke

monchi
Forum-Anfänger
Forum-Anfänger
Beiträge: 23
Registriert: Fr 21. Dez 2012, 13:24

Beitrag von monchi »

ich habe mir sowas schon fast gedacht. gibt es eine Möglichkeit "name path global" mit beschränktem Gültigkeitsbereich zu setzen? Also so wie bei Variablen. Werden diese z.B. innerhalb von einer figure-Umgebung deklariert, gelten sie auch nur in dieser.

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Das ist ja gerade der Sinn von `name path global`, dass sie eben nicht beschränkt, sondern global sind. Für die beschränkten gibt es `name path` ohne `global`. Ohne mir jedoch das Beispiel von Elke wirklich angesehen zu haben, gehe ich aufgrund Elkes Kompetenz davon aus, dass es einen Grund dafür gab, `name path global` zu benutzen.
Ein vollständiges Minimalbeispiel (VM) zu erzeugen, ist gar nicht schwer und hilft ganz oft, Fehler selber zu finden. Ohne bekommt man selten gute Antworten. Anleitungen findest du z.B. im golatex Wiki auf TeXWelt oder minimalbeipiel.de
Außerdem hilft das Lesen dieser Seite, Fragen richtig zu stellen.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Es liegt nicht an dem 'global', sondern irgendwie an der Reihenfolge der Zeichenschritte. Mit dem folgenden Code tritt das Problem nicht auf:
\documentclass{scrartcl} 
\usepackage{pgfplots,pgfplotstable,filecontents} 
\pgfplotsset{compat=1.8} 
\usetikzlibrary{intersections}

\begin{filecontents*}{table.csv} 
  X,Y,Z,Label,Alng 
  100,150,2001,0,90 
  400,390,2002,0,180 
  600,645,2003,0,90 
\end{filecontents*} 

\pgfkeys{/pgf/number format/set thousands separator={}}

\newcommand\Diagramm{%
  \begin{tikzpicture}[scale=1.4, transform shape] 
    \def\varXmax{700} 
    \def\varYmax{\varXmax} 
  %
    \begin{axis}[ 
      xlabel={$S_{x,theoretisch} [mm]$}, 
      ylabel={$S_{x,gemessen} [mm]$}, 
      xmin={0}, 
      ymin={0}, 
      xmax={\varXmax}, 
      ymax={\varYmax}, 
      minor tick num=1, 
      try min ticks=10,
      clip mode=individual
    ] 
  %
      \addplot[scatter,only marks, 
        visualization depends on={\thisrow{Label} \as \Lblswitch}, 
        visualization depends on={\thisrow{Alng} \as \Alingmnt}, 
        visualization depends on={value \thisrow{Z} \as \LblZ}, 
        nodes near coords={\pgfmathparse{\Lblswitch > 0 ? "Beschriftung\ (\LblZ )" : ""}\pgfmathresult}, 
        every node near coord/.style={anchor=\Alingmnt} 
        ] table [x=X,y=Y,col sep=comma] {table.csv}; 
  %
      \path[name path=axis1](rel axis cs:0,0)rectangle(rel axis cs:1,1);
      \addplot [gray, style=dashed, no marks, domain=0:\varXmax,name path global=pe1]{0.75*x};   % -25% 
      \node[name intersections={of=axis1 and pe1}, right] at (intersection-2){-25\%}; 
      \addplot [gray, style=dashed, no marks, domain=0:\varXmax]{x}; 
      \addplot [gray, style=dashed, no marks, domain=0:\varXmax,name path global=pe3]{1.25*x};   % +25%       
      \node[name intersections={of=axis1 and pe3}, above] at (intersection-2){+25\%}; 
    \end{axis} 
  \end{tikzpicture}%
}

\begin{document} 
\Diagramm

\Diagramm
\end{document} 
Gruß
Elke

monchi
Forum-Anfänger
Forum-Anfänger
Beiträge: 23
Registriert: Fr 21. Dez 2012, 13:24

Beitrag von monchi »

Besten Dank!

Antworten