Hallo, ich habe ein Diagramm erstellt, in dem ich gerne die Farbe der Punkte ändern würde und in das ich beschriftete waagerechte und senkrechte Pfeile einfügen möchte.

Open in Online-Editor
\documentclass[tikz,margin=10pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}

\begin{axis}[
ymin=0,
xmin=0,
xmax=200,
black
]
\addplot+[smooth,black,solid,line width=0.7pt] coordinates
{(25,-0.5)(50,13) (120,45) (190,80) (210,86)};

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

Kann mir jemand helfen?

gefragt 12 Apr '15, 13:10

roadrunner_ac's gravatar image

roadrunner_ac
59513
Akzeptiert: 44%

bearbeitet 13 Apr '15, 10:22

esdd's gravatar image

esdd
14.2k53251

Bitte stelle immer nur eine Frage.

(12 Apr '15, 16:00) esdd

Farbe der Marker

In einer axis Umgebung werden oft mehrere Plots dargestellt. Damit diese unterschieden werden können, wird eine sogenannte cycle list verwendet, die dann je nach Plotnummer unterschiedliche Farben, Marker oder auch Linienstile verwendet. Das Paket pgfplots stellt bereits verschiedene cycle list bereit. Standardmäßig wird die mit color bezeichnete verwendet, die wie folgt definiert ist:

Open in Online-Editor
\pgfplotscreateplotcyclelist{color}{%
    blue,every mark/.append style={fill=blue!80!black},mark=*\\%
    red,every mark/.append style={fill=red!80!black},mark=square*\\%
    brown!60!black,every mark/.append style={fill=brown!80!black},mark=otimes*\\%
    black,mark=star\\%
    blue,every mark/.append style={fill=blue!80!black},mark=diamond*\\%
    red,densely dashed,every mark/.append style={solid,fill=red!80!black},mark=*\\%
    brown!60!black,densely dashed,every mark/.append style={
    solid,fill=brown!80!black},mark=square*\\%
    black,densely dashed,every mark/.append style={solid,fill=gray},mark=otimes*\\%
    blue,densely dashed,mark=star,every mark/.append style=solid\\%
    red,densely dashed,every mark/.append style={solid,fill=red!80!black},mark=diamond*\\%
}

Entsprechend dieser Liste wird der erste Plot blau gezeichnet und dessen Marker haben die Form * (gefüllter Kreis) und sind mit der Farbe blue!80!black gefüllt. Die Verwendung dieser Voreinstellung kann man abschalten, in dem man bei \addplot das optionale Argument verwendet, das auch leer sein kann. Verwendet man dagegen \addplot+, dann werden die im optionalen Argument vorhandenen Optionen nur ergänzt. In Deinem Beispiel wird deshalb die Farbe zum Füllen der Marker nicht mit geändert. Den Stil für die Marker kann man mit every mark/.append style ergänzen oder every mark/.style oder kürzer mark options neu setzen.

Hier ist ein Vorschlag mit \addplot[...]

Open in Online-Editor
\documentclass[margin=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ymin=0,xmin=0,xmax=200,
  every axis plot/.append style={smooth,line width=.7pt}
]
\addplot[mark=*,
    %mark options={fill=orange}% falls andere Füllung als schwarz
  ]coordinates{(25,-0.5)(50,13) (120,45) (190,80) (210,86)};
\end{axis}
\end{tikzpicture}
\end{document}

und mit \addplot+[...]

Open in Online-Editor
\documentclass[margin=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ymin=0,xmin=0,xmax=200,
  every axis plot/.append style={smooth,line width=.7pt}
]
\addplot+[black,mark options={black}]
  coordinates{(25,-0.5)(50,13) (120,45) (190,80) (210,86)};
\end{axis}
\end{tikzpicture}
\end{document}

Da ich davon ausgehe, dass alle Plots in der axis Umgebung die gleiche Linienbreite haben und smooth verwenden sollen, habe ich das in die Optionen der gesamten Umgebung geschrieben.

Ergebnis in beiden Fällen:

alt text


Du kannst Dir natürlich auch eine eigene cycle list zum Beispiel mit dem Namen mylist definieren und diese dann mit cycle list name=mylist für die axis Umgebung verwenden. Das hat den Vorteil, dass Du auf einfache Art für mehrere Diagramme die gleichen von Dir vorgegebenen Einstellungen für die Plots verwenden kannst.

Open in Online-Editor
\documentclass[margin=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\pgfplotscreateplotcyclelist{mylist}{%
  black,mark=*\\%
  orange,every mark/.append style={fill=green,draw=red},mark=square*\\%
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ymin=0,xmin=0,xmax=200,
  every axis plot/.append style={smooth,line width=.7pt},
  cycle list name=mylist
]
\addplot coordinates{(25,-0.5)(50,13) (120,45) (190,80) (210,86)};
\addplot coordinates{(25, 9.5)(50,23) (120,55) (190,90) (210,96)};
\end{axis}
\end{tikzpicture}
\end{document}

liefert

alt text


Pfeile

Mir ist nicht klar, wo Du die Pfeile haben möchtest, wie diese aussehen sollen und wo die Beschriftung stehen soll. Deshalb ist hier nur ein Vorschlag als Ausgangspunkt

Open in Online-Editor
\documentclass[margin=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}[
  pfeil/.style={shorten <=1mm,>=latex,<-}
]
\begin{axis}[ymin=0,xmin=0,xmax=200,
  every axis plot/.append style={smooth,line width=.7pt},
]
\addplot[mark=*]
  coordinates{(25,-0.5)(50,13) (120,45) (190,80) (210,86)};
\draw [pfeil](50,13)--+(0,1cm)node[above]{Text 1};
\draw [pfeil](50,13)--+(1cm,0)node[right]{Text 2};
\draw [pfeil](120,45)--node[left]{Text 3}+(0,1cm);
\draw [pfeil](120,45)--node[above]{Text 4}+(2cm,0);
\end{axis}
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 12 Apr '15, 15:59

esdd's gravatar image

esdd
14.2k53251

Perfekt :)

Genau das habe ich gesucht. Vielen Dank.

(13 Apr '15, 13:42) roadrunner_ac
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: 12 Apr '15, 13:10

Frage wurde angeschaut: 4,749 Mal

Zuletzt aktualisiert: 13 Apr '15, 13:42