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's gravatar image

essb
2612
Akzeptiert-Rate: 0%


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 cycle list einstellen.

\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}

alt text

Permanenter link

beantwortet 09 Apr '20, 16:30

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×298
×32
×4
×1

gestellte Frage: 08 Apr '20, 23:36

Frage wurde gesehen: 4,586 Mal

zuletzt geändert: 09 Apr '20, 16:30