Ich bin seit zwei Tagen (na, eher Abenden) daran, einen Graphen herzustellen, in dem neben den Datenpunkten bzw. Koordinaten ein Label (also die Bezeichnung des Experiments) gesetzt wird. Die Label sollen dabei die gleiche Farbe haben, wie der zugehörige Datenpunkt. Ich bin mittlerweile soweit, dass entweder die Farben der Label mit den Datenpunkten übereinstimmen oder aber die Beschriftung stimmt, aber die Farbe der Datenpunkte nicht. Ich hab mal ein Beispiel angehängt, dass mein Dilemma zeigt: Im ersten Bild stimmen die Farben, aber als Label wird "nan" gesetzt, da "nodes near coords*" in diesem Fall anscheinend nur mathematische Ausdrücke akzeptiert, da ich ja schon den meta-Wert als explicit symbolic für die scatter/classes benötigt habe. Im zweiten Bild stimmen Farbe und Text des Labels, aber die Datenpunkte bleiben blau. Wie kann ich erreichen, dass sowohl die Farben übereinstimmen, als auch der richtige Name als Label gesetzt wird? Am liebsten wäre mir dabei, wenn ich weiterhin die Möglichkeit hätte wie im ersten Bild die Form der Datenpunkte noch zu beeinflussen. \begin{filecontents}{meineDaten.txt} Temperatur Metall color Label anchor 1157 1.12 TUCred {C1 Luft} {north} 1096 1.02 TUCred {C1 20\%} {south} 1105 1.16 TUCred {C1 30\%} {north} 1140 1.05 TUCgrey1 {C1B1 Luft} {south} 1092 0.77 TUCgrey1 {C1B1 20\%} {north} 1112 1.23 TUCgrey1 {C1B1 30\%} {south} \end{filecontents} \documentclass[ngerman,paper=a4, fontsize=12pt]{scrartcl} \usepackage{xcolor} \definecolor{TUCgreen}{cmyk}{1,0,0.9,0.2} \definecolor{TUCgrey1}{cmyk}{0,0,0,0.5} \definecolor{TUCred}{cmyk}{0.29,0.93,0.96,0.05} \usepackage{graphicx} \usepackage{pgfplots} \usepackage{pgfplotstable} \pgfplotsset{compat=1.15} \begin{document} \begin{figure} \centering \begin{tikzpicture} \begin{axis}[width=15cm, height=10cm,,%nodes near coords, ylabel={Anteil der Ablagerung am Gesamtascheeintrag}, xlabel={Temperatur der Aschepartikel}, yticklabel style = {/pgf/number format/.cd,fixed,precision=2}, label style={font={\normalsize}}, tick label style={font={\normalsize}}, legend style={font={\normalsize}}, grid=none, % ] \addplot [ scatter/classes={ TUCgreen={mark=square*,TUCgreen}, TUCred={mark=triangle*,TUCred}, TUCgrey1={mark=square*,TUCgrey1}% no comma }, scatter,only marks, scatter src=explicit symbolic, visualization depends on={\thisrow{Label} \as \myvalue}, visualization depends on={value \thisrow{anchor}\as\myanchor}, visualization depends on={value \thisrow{color}\as\mycolor}, every node near coord/.append style={font=\small,anchor=\myanchor,color=\mycolor},% nodes near coords*=\myvalue, ] table [x=Temperatur,y=Metall,meta=color] {meineDaten.txt}; \end{axis} \end{tikzpicture} \end{figure}\begin{figure} \centering \begin{tikzpicture} \begin{axis}[nodes near coords, width=15cm, height=10cm, ylabel={Anteil der Ablagerung am Gesamtascheeintrag}, xlabel={Temperatur der Aschepartikel}, yticklabel style = {/pgf/number format/.cd,fixed,precision=2}, label style={font={\normalsize}}, tick label style={font={\normalsize}}, legend style={font={\normalsize}}, grid=none, % ] \addplot+[ only marks, point meta=explicit symbolic, visualization depends on={value \thisrow{anchor}\as\myanchor}, visualization depends on={value \thisrow{color}\as\mycolor}, every node near coord/.append style={font=\small,anchor=\myanchor,color=\mycolor},% ] table[ x index=0, y index=1, meta=Label, ] {meineDaten.txt}; \end{axis} \end{tikzpicture}\end{figure} \end{document} gefragt 08 Apr '20, 23:36 essb |
Wenn Du in der Datei mit den Daten die Farbennamen durch Nummern ersetzt, dann kannst Du einfach für jede dieser Nummern einen Plot erstellen. Die gewünschte Farbfolge und die Form der Datenpunkte kannst Du über eine \begin{filecontents}{meineDaten.txt} Temperatur Metall color Label anchor 1157 1.12 1 {C1 Luft} {north} 1096 1.02 1 {C1 20\%} {south} 1105 1.16 1 {C1 30\%} {north} 1140 1.05 2 {C1B1 Luft} {south} 1092 0.77 2 {C1B1 20\%} {north} 1112 1.23 2 {C1B1 30\%} {south} \end{filecontents} \documentclass[ngerman,fontsize=12pt]{scrartcl} \usepackage{babel} \usepackage{pgfplotstable}% lädt pgfplots, tikz, graphicx, xcolor, ... \pgfplotsset{compat=1.15}% aktuell wäre derzeit 1.17 \definecolor{TUCgreen}{cmyk}{1,0,0.9,0.2} \definecolor{TUCgrey1}{cmyk}{0,0,0,0.5} \definecolor{TUCred}{cmyk}{0.29,0.93,0.96,0.05} \begin{document} \begin{figure} \centering \begin{tikzpicture} \begin{axis}[nodes near coords, width=15cm, height=10cm, ylabel={Anteil der Ablagerung am Gesamtascheeintrag}, xlabel={Temperatur der Aschepartikel}, yticklabel style = {/pgf/number format/.cd,fixed,precision=2}, label style={font={\normalsize}}, tick label style={font={\normalsize}}, legend style={font={\normalsize}}, % Festlegen der Farben und Markerformen: cycle list={% {TUCred,mark=triangle*}, {TUCgrey1,mark=square*}, {TUCgreen,mark=square*} }, ] \pgfplotsinvokeforeach{1,2}{ \addplot+[ only marks, point meta=explicit symbolic, visualization depends on={value \thisrow{anchor}\as\myanchor}, nodes near coords style={font=\small,anchor=\myanchor}, ]table[ x index=0,y index=1,meta=Label, restrict expr to domain={\thisrow{color}}{#1:#1}% Filten nach Nummer in Spalte color ] {meineDaten.txt}; } \end{axis} \end{tikzpicture} \end{figure} \end{document} beantwortet 09 Apr '20, 16:30 esdd |