Hallo TeXwelt-Gemeinde,

ich möchte verschiedene Spektren mit pgfplots plotten. Dabei möchte ich natürlich die Linien markieren. Dafür wären verschiedene Typen von Markierungen super.

  1. Eine spezielle Linie kennzeichnen
  2. Einen Bereich kennzeichnen

Punkt 1 ist kein großen Problem. Punkt 2 schon eher.

alt text

Open in writeLaTeX
\documentclass[a4paper]{article}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}

\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}
\begin{axis}
\addplot {x^2 - x +4};

\draw [thick, gray, |-|] (axis cs:-2,20)  -- (axis cs:3,20)
    node [black!75, pos=0.5, above=-1pt] {\tikz\draw (0,0) -- (1,0);};

\node[coordinate,  pin = {[rotate=90]right:FI}] at (axis cs:4,23) { };

\end{axis} 
\end{tikzpicture}

alt text

Es ist noch ein Problem, dass die Enden der Linie nur nach unten gehen (was nicht unbedingt sein muss) und die Markierung. Desweiteren suche dabei nach einer einfachen Möglichkeit an bestimmten Abständen eine Linie nach unten zu zeichnen, um z.B. Doppellinie zu markieren. Was nur Kosmetik wäre, aber ich muss bis jetzt den senkrechten Strich nach oben mit above=-1pt versetzen, damit keine Lücke besteht.

Lange Rede, kurzer Sinn. Hat jemand eine zündende Idee, wie man das alles mit tikz/pgfplots umsetzt?

Danke im Voraus!

gefragt 29 Apr '14, 17:20

maphy-psd's gravatar image

maphy-psd
37151017
Akzeptiert-Rate: 25%

bearbeitet 29 Apr '14, 17:50

Da es sich beim Spektrum um Meßdaten handelt, wäre es sicher gut, wenn Du ein paar davon als Minimalbeispiel angibst, z.B. die für den 1. Peak. Man kann die Tabellendaten dann mit

Open in writeLaTeX

 \usepackage{filecontents}

verwenden.

(29 Apr '14, 20:44) cis

Das wollte ich zunächst auch, jedoch handelt sich um hochaufgelöste Quasarspektren. Für einen 1nm-Bereich haben wir bereits ~200 Datenpunkte. Damit wollte ich das Minimalbeispiel nicht künstlich vergrößern. Bei Bedarf stelle ich aber gerne was rein.

(30 Apr '14, 11:54) maphy-psd

Wenn ich Dich richtig verstehe, fragst Du danach, wie die Spektren unterschiedlich markiert können und wie die zusätzlichen Einträge gemacht werden können.

Standardmäßig werden mehrere Plots in einem Diagramm mit verschiedenen Farben und verschiedenen Markern dargestellt. Wenn der Datensatz eines Plotes aber viele Koordinaten enthält, dann stören die Marker schnell. Mit der Option no markers werden die Graphen nur noch verschieden farbig dargestellt. Alternativ kann man die Art der unterschiedlichen Markierung auch über die Option cycle list name einstellen (siehe Dokumentation).

Für die Beschriftung ist es sicher sinnvoll sich einen Stil zu definieren. Ich gehe davon aus, dass du die zusätzlichen Linien/Striche und Beschriftungen ähnlich zu deinem oberen Bild haben möchtest. Die Striche nach unten kannst du an den im axis cs angesteuerten Punkten durch --+(<länge in x-richtung>,<länge in y-richtung>) einzeichnen. Zu beachten ist, dass dabei die Längeneinheit mit angegeben werden muss.

Open in writeLaTeX
\documentclass[margin=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\newcommand\laenge{3ex}% Länge der Striche nach unten
\tikzset{
  beschriftung/.style={
    thick,pin edge=thick,
    pin distance=\laenge,
    gray,text=black
  }
}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
  %cycle list name=color list,
  no markers
  ]
\addplot {x^2 - x +4};
\addplot {0.5*x^2 - x +4};

\begin{scope}[beschriftung]
  \draw 
    ([yshift=-\laenge]axis cs:-2,20)--
      (axis cs:-2,20)--
      coordinate(a)(axis cs:3,20)
      node[at end,above,anchor=south east]{N I}
      --+(0cm,-\laenge);
  \draw(a)--+(0cm,-\laenge);
  \node[coordinate,pin = {above:FI}] at (axis cs:4,23){};
\end{scope}

\end{axis} 
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 29 Apr '14, 22:51

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 30 Apr '14, 09:45

Vielen Dank! Genau das wollte ich. Hab das Beispiel noch etwas erweitert, sodass ich an beliebigen Stellen ein Strich nach unten machen kann.

Open in writeLaTeX
\usetikzlibrary{calc}

\draw ($(axis cs:-2,20)!.75!(axis cs:3,20)$) --+(0cm,-\laenge); % Ein senkrechter Strich bei 3/4 des waagerechten Striches.

Ich sollte mich endlich näher mit TikZ und Co. beschäftigen. Gibt es ein empfehlenswertes Buch für Einsteiger bzw. Tutorial?

(01 Mai '14, 11:29) maphy-psd
1

Die recht umfangreichen Dokus zu TikZ und pgfplots enthalten jeweils auch ein Tutorial. Bücher sind mir leider nicht bekannt.

(01 Mai '14, 11:36) esdd
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:

×730
×298

gestellte Frage: 29 Apr '14, 17:20

Frage wurde gesehen: 10,509 Mal

zuletzt geändert: 01 Mai '14, 12:25