Farben in pgfplots

Tabellen und Grafiken erstellen und anordnen


ThoRie
Forum-Century
Forum-Century
Beiträge: 117
Registriert: Fr 12. Mai 2017, 11:57

Farben in pgfplots

Beitrag von ThoRie »

Hallo,

ich habe aus einer .txt-Datei einen Graphen erstellen lassen, mit dem ich nicht ganz zufrieden bin:

Code: Alles auswählen

\documentclass{article}
\begin{filecontents*}{elnum6a.txt}
lgh	deltah	lgdeltah
-2	0.005	-2.301029996
-3	0.0005	-3.301029996
\end{filecontents*}
\usepackage{pgfplots}
\pgfplotstableread{elnum6a.txt}
\datatable
\begin{document}
 \begin{tikzpicture}
	\begin{axis}
	\addplot table[y=lgdeltah, color=red] from \datatable;
	\end{axis}
\end{tikzpicture}
\end{document}
Und zwar will ich die Farbe des Graphen ändern. Aber auf die Weise, auf die ich es hier versucht habe, geht es leider nicht.
Hat da jemand eine Idee, wie das funktionieren könnte?

PS.: Den Graphen kann ich nicht ohne die .txt-Datei erstellen, da diese im Original abartig groß ist. Ich habe hier nur alles für das Minimalbeispiel so weit wie möglich und sinnvoll eingekürzt.

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

Beitrag von esdd »

Sehr schönes Minimalbeispiel, setze aber unbedingt immer compat direkt nach dem Laden von pgfplots, auch wenn das nichts mit Deiner Frage zu tun hat.

Code: Alles auswählen

\usepackage{pgfplots}
\pgfplotsset{compat=1.16}% <- alternativ compat=newest
Du musst die Farbänderung im optionalen Argument von \addplot vornehmen. Dafür hast Du zwei Möglichkeiten:

entweder

Code: Alles auswählen

\addplot+[red,mark options={fill=red!80!black}] table[y=lgdeltah] from \datatable; 
oder

Code: Alles auswählen

\addplot[red,mark=*,mark options={fill=red!80!black}] table[y=lgdeltah] from \datatable;
Soll die Füllung der Marker auch einfach nur rot sein, also nicht dunkler als die Linie, dann musst Du im ersten Fall mark options={fill=red} verwenden, im zweiten kannst Du mark options=... einfach weglassen.

\addplot+[...] fügt die Änderungen nach den durch die cycle list gesetzten Optionen an. \addplot[...] ignoriert dagegen die von der cycle list gesetzten Optionen. Die cycle list hat hauptsächlich die Aufgabe dafür zu sorgen, dass mehrere Plots in einem Diagramm automatisch unterschiedlich dargestellt werden, siehe dazu die Paketdokumentation.
Zuletzt geändert von esdd am Mi 22. Mai 2019, 10:00, insgesamt 2-mal geändert.

Ratgeber

Erst lesen, dann fragen

Beitrag von Ratgeber »

Einleitung von Kapitel 3 der Anleitung zu »pgfplots« lesen und schon ist die Lösung gefunden.

Code: Alles auswählen

\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}

\usepackage{pgfplots}
\pgfplotstableread{elnum6a.txt}
\datatable

\begin{filecontents*}{elnum6a.txt}
lgh   deltah   lgdeltah
-2   0.005     -2.301029996
-3   0.0005    -3.301029996
\end{filecontents*}

\begin{document}
 \begin{tikzpicture}
   \begin{axis}
     \addplot[red,mark=*] table[y=lgdeltah] from \datatable;
   \end{axis}
  \end{tikzpicture}
\end{document}

ThoRie
Forum-Century
Forum-Century
Beiträge: 117
Registriert: Fr 12. Mai 2017, 11:57

Beitrag von ThoRie »

Okay also erstens danke für die schnelle Hilfe :)
Zweitens entschuldigt meine Dummheit zwecks dem Lesen der Dokumentation :oops:
Und drittens, die Marks sind ohnehin unwichtig, die haben bei mir eh Mal das Argument none. Das hab ich nur rausgenommen, weil es für das Problem ja unerheblich ist. Den compat wert habe ich in der original zugehörigen class Datei auch drin. Ich hatte nur vergessen den in das Beispiel zu übernehmen XD wie gesagt, der ist halt bei mir automatisch dabei :)

Antworten