CSV mit Tikz nach RGB-Werten plotten Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


Gastfelix

CSV mit Tikz nach RGB-Werten plotten

Beitrag von Gastfelix »

Hallo :)

kurze Frage: Ich habe eine CSV-Datei (data.csv), die in etwa so aussieht:

MW, GA, R, G, B
1.76, -0.018, 99, 190, 123
1.66, -0.018, 99, 190, 123
1.24, -0.5784, 103, 191, 123
...

Im Moment plotte ich die Datei dann mittels tikz auf eine schöne 2D-Fläche mit den Achsen MW und GA:
\begin{tikzpicture}
    \begin{axis}[ ... ]
         \addplot+[only marks, mark=*, mark options={fill=red}, mark size=0.8, red] table [x=MW, y=GA, col sep=comma] {data.csv};
    \end{axis}
\end{tikzpicture}
Dort sind alle Punkte nun natürlich rot - habe ich ja auch so angegeben. Ich möchte aber, dass die Punkte die jeweilige RGB Farbe haben, welche in der CSV-Datei angegeben werden (Werte r,g,b). Ist das irgendwie möglich? Ich finde nur Methoden wie "cycle list", aber ich habe ja pro Zeile jeweils einen anderen Farbwert - das funktioniert also schon mal nicht. Sonst fällt mir auch nicht wirklich ein, wie ich die Werte r,g,b einfach als Variablen in der "fill"-Eigenschaft verwenden könnte. Gibt es da eine gute Lösung oder Alternativen?

Liebe Grüße
Felix

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Wenn Du ein Minimalbeispiel anbietest, können auch andere Deine "schöne 2D-Fläche mit den Achsen MW und GA" sehen.

Gastfelix

Beitrag von Gastfelix »

Oh, natürlich - sorry!
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{filecontents*}{data.csv}
x,y,R,G,B
1.76,-0.018,99,190,123
1.66,-0.018,99,190,123
1.24,-0.5784,103,191,123
1.24,-0.5911,108,192,123
1.26,-0.5911,108,192,123
\end{filecontents*}

\begin{document}

\begin{tikzpicture}
    \begin{axis}        
         \addplot+[only marks, mark options={fill=red}, mark size=0.8, red] table [x=x, y=y, col sep=comma] {data.csv};
    \end{axis}
\end{tikzpicture}
\end{document}
Das sollte funktionieren. Ich bin der Meinung, dass man die Datei irgendwie mit der foreach-Schleife durchlaufen kann, aber wie man die RGB-Werte als Variablen auslesen und dann als jeweilige Punktfarbe wieder einfügen kann, ist mir ein Rätsel. Habt ihr da vielleicht Ideen?

Gastfelix

Beitrag von Gastfelix »

... bearbeiten geht wohl nicht. Dann fehlt dort natürlich nocht
\usepackage{filecontents}

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Die fehlerlose Ausführung auf Overleaf ist zwar kein muss, aber Dein Beispiel wird dort ohne \usepackage{filecontents} in der Präambel ausgeführt. Dafür fehlt die Einstellung der Option compat.

Übrigens reicht es, nur pgfplots zu laden. Es lädt pgf/tikz.

Vor ein paar Jahren gab es eine ähnliche Frage auf TeX.SX und der Betreuer von pgfplots antwortete.

Gastfelix

Beitrag von Gastfelix »

Perfekt - genau das, was ich gesucht habe. LaTeX überrascht mich echt immer wieder :)

Danke!
Felix

Antworten