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, 11:20

maphy-psd's gravatar image

maphy-psd
316213
Akzeptiert: 71%

bearbeitet 29 Apr '14, 11: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, 14: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, 05: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, 16:51

esdd's gravatar image

esdd
14.2k53251

bearbeitet 30 Apr '14, 03: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, 05: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, 05:36) esdd
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:

×492
×160

Frage gestellt: 29 Apr '14, 11:20

Frage wurde angeschaut: 3,596 Mal

Zuletzt aktualisiert: 01 Mai '14, 06:25