Ich bin gerade dabei ein Shapiro-Diagramm zu erstellen und sehe in der pgfplots-Doku mittlerweile den Wald vor lauter Bäumen nicht.

Open in writeLaTeX
\documentclass{standalone}

\usepackage{pgfplots}
\usepackage{filecontents}
\usepgfplotslibrary{ternary}
\pgfplotsset{width=7cm, compat=newest}

\begin{filecontents*}{ternary_data.txt}
A_H2 A_Air A_Steam B_H2 B_Air B_Steam
0.13 0.87 0 0.7 0.3 0
0.13 0.87 0 0.65 0.3 0.05
0.13 0.87 0 0.6 0.31 0.09
0.13 0.87 0 0.55 0.32 0.13
0.13 0.87 0 0.5 0.33 0.17
0.13 0.87 0 0.45 0.34 0.21
0.13 0.87 0 0.4 0.35 0.25
0.13 0.87 0 0.35 0.37 0.28
0.13 0.87 0 0.3 0.38 0.32
0.13 0.87 0 0.25 0.42 0.33
0.13 0.87 0 0.2 0.47 0.33
0.13 0.87 0 0.15 0.75 0.1
0.13 0.87 0 0.14 0.8 0.06
0.13 0.87 0 0.13 0.85 0.02
\end{filecontents*}

\begin{document}
  \begin{tikzpicture}
    \begin{ternaryaxis}[
      title=Shapiro Diagramm,
      xlabel=Wasserdampf,
      ylabel=Luft,
      zlabel=Wasserstoff,
      label style={sloped},
      minor tick num=3,
      grid=both,
      axis on top
    ]
      \addplot3[
        point meta=rand,
        tieline={tieline style={contour prepared}},
        fill=red!80,
      ]
      table [x=A_Steam, y=A_Air, z=A_H2]{ternary_data.txt};
    \end{ternaryaxis}
  \end{tikzpicture}
\end{document}
  1. Wie erreiche ich eine Nummerierung der Achsen in 10er-Schritten?
  2. Kann ich eventuell die Achsen farbig gestalten (und eventuell auch die entsprechenden Linien im Grid: z.B. Wasserstoff = dunkelblau, Luft = grün, Wasserdampf = hellblau?

Shapiro-Diagramm

gefragt 24 Apr '14, 17:01

dzaic's gravatar image

dzaic
631154954
Akzeptiert-Rate: 42%

bearbeitet 24 Apr '14, 17:22

stefan's gravatar image

stefan ♦♦
18.3k163148

Sehr schönes Minimalbeispiel! Ich habe mal ein Bild eingefügt, damit man es noch besser sehen kann.

(24 Apr '14, 17:34) stefan ♦♦

Style und Beschriftung kannst Du z.B. so ändern

Open in writeLaTeX

        zlabel=Wasserstoff,
zlabel style={text=green!50!black},
zmin=0, zmax=100, ztick={0, 10, 20,...,100},

Evtl. muß auch noch

Open in writeLaTeX

ternary limits relative=false

gesetzt werden. Du willst aber nicht nur Titel schön bunt, sondern auch die Hilflinien im Shapiro-Diagramm (da weiß ich gerade nicht, wie es geht).

Abgesehen davon, führen die manuellen tick's (letzte Zeile im o.g. Code) dazu, daß der Inhalt verschwindet. Hier müßte man die Tabellendaten mal 100 nehmen. Das geht wohl mit expr(ess), vgl. pgfplotsmanual; k.A. wie genau.

(24 Apr '14, 19:03) cis

Wie von @cis skizziert ist eine Hauptidee, mit styles zu arbeiten.

Unerwartet ist das Format der ticks: pgfplots erwartet hier dasselbe format wie die eingabe coordinaten, obwohl als Ausgabe relative angeben stehen. Darum ist hier xtick={0,0.1,0.2,...,1} das zielfuehrende (ob das ein Bug ist weiss ich nicht).

Ich habe mal nicht dunkelblau und hellblau sondern blau und brown gewaehlt; das Prinzip ist aber klar, denke ich:

Open in writeLaTeX
\documentclass{standalone}

\usepackage{pgfplots}
\usepackage{filecontents}
\usepgfplotslibrary{ternary}
\pgfplotsset{width=7cm, compat=1.10}

\begin{filecontents*}{ternary_data.txt}
A_H2 A_Air A_Steam B_H2 B_Air B_Steam
0.13 0.87 0 0.7 0.3 0
0.13 0.87 0 0.65 0.3 0.05
0.13 0.87 0 0.6 0.31 0.09
0.13 0.87 0 0.55 0.32 0.13
0.13 0.87 0 0.5 0.33 0.17
0.13 0.87 0 0.45 0.34 0.21
0.13 0.87 0 0.4 0.35 0.25
0.13 0.87 0 0.35 0.37 0.28
0.13 0.87 0 0.3 0.38 0.32
0.13 0.87 0 0.25 0.42 0.33
0.13 0.87 0 0.2 0.47 0.33
0.13 0.87 0 0.15 0.75 0.1
0.13 0.87 0 0.14 0.8 0.06
0.13 0.87 0 0.13 0.85 0.02
\end{filecontents*}

\begin{document}
  \begin{tikzpicture}
    \begin{ternaryaxis}[
      title=Shapiro Diagramm,
      xlabel=Wasserdampf,
      ylabel=Luft,
      zlabel=Wasserstoff,
      label style={sloped},
      minor tick num=3,
      grid=both,
      axis on top,
      xtick={0,0.1,0.20,...,1},
      ytick={0,0.1,0.20,...,1},
      ztick={0,0.1,0.20,...,1},
      %
      every axis x grid/.style={blue!60!white},
      x axis line style={blue!60!white},
      %
      every axis y grid/.style={green!70!white},
      y axis line style={green!50!white},
      %
      every axis z grid/.style={brown!70!white},
      z axis line style={brown},
    ]
      \addplot3[
        point meta=rand,
        tieline={tieline style={contour prepared}},
        fill=red!80,
      ]
      table [x=A_Steam, y=A_Air, z=A_H2]{ternary_data.txt};
    \end{ternaryaxis}
  \end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 24 Apr '14, 22:43

cfeuersaenger's gravatar image

cfeuersaenger
3.7k23
Akzeptiert-Rate: 34%

Wirklich genial, daß es da sowas schon als Vorlage gibt. Ich empf. noch den Feinschliff mit

Open in writeLaTeX

   every axis x grid/.style={blue!60!white, opacity=0.4},

(25 Apr '14, 02:52) cis

@dzaic Neben persönlichem Support ist ein Hauptzweck von TeXwelt die Archivierung von Lösungen für Suchende. Die Frage-Antwort-Form mit Bewertung und Themeneinordnung gibt bessere Zugänglichkeit als ein klassisches Internetforum mit langen Threads wie "Hilfe bei meiner Thesis" und zehn Fragen drin mit seitenweise DIskussion. In diesem Sinne wäre es gut, konkrete Anschlussfragen wie "Wie ändere ich die Farbe von Labels in pgfplots?" oder "Wie ändere ich die Farbe von major und minor ticks in pgfplots?" als neue Frage zu posten. Das hilft anderen später mehr. Freu mich auf neue Fragen. :-)

(25 Apr '14, 11:11) stefan ♦♦

@stefan Danke für den berechtigten Hinweis und entschuldige bitte mein Vorgehen.

(25 Apr '14, 13:25) dzaic
1

@dzaic Ist gar kein Problem, TeXwelt ist etwas gewöhnungsbedürftig anders, verstehe ich ja völlig und erkläre es gern. Wir profitieren von Sortierung und Qualitätsbewertung (durch Stimmen via "Daumen hoch"-Button) später sehr, wenn wir hier tausende Fragen und Antworten haben und die relevantesten und besten suchen. Traumziel: man tippt eine deutschsprachige TeX-Frage in google ein, landet dann hier bei der wörtlich optimal passenden Frage und die bestbewertete Antwort steht ganz oben - toller Komfort für suchende TeX-Freunde.

(25 Apr '14, 13:38) stefan ♦♦

Die Nummerierung in 10er Schritten bekommst Du mit

Open in writeLaTeX
xtick={0,.1,.2,...,1},

Die Achse und deren Beschriftung kannst Du mit folgendem in einer vorher definierten Farbe xcolor

Open in writeLaTeX
xtick style=xcolor,
xlabel style=xcolor,
x axis line style=xcolor,
xticklabel style=xcolor,

alt text

Code:

Open in writeLaTeX
\documentclass[margin=5mm]{standalone}

\usepackage{pgfplots}
\usepackage{filecontents}
\usepgfplotslibrary{ternary}
\pgfplotsset{width=7cm, compat=newest}

\colorlet{xcolor}{blue!60!white}
\colorlet{ycolor}{blue!50!black}
\colorlet{zcolor}{green}

\begin{filecontents*}{ternary_data.txt}
A_H2 A_Air A_Steam B_H2 B_Air B_Steam
0.13 0.87 0 0.7 0.3 0
0.13 0.87 0 0.65 0.3 0.05
0.13 0.87 0 0.6 0.31 0.09
0.13 0.87 0 0.55 0.32 0.13
0.13 0.87 0 0.5 0.33 0.17
0.13 0.87 0 0.45 0.34 0.21
0.13 0.87 0 0.4 0.35 0.25
0.13 0.87 0 0.35 0.37 0.28
0.13 0.87 0 0.3 0.38 0.32
0.13 0.87 0 0.25 0.42 0.33
0.13 0.87 0 0.2 0.47 0.33
0.13 0.87 0 0.15 0.75 0.1
0.13 0.87 0 0.14 0.8 0.06
0.13 0.87 0 0.13 0.85 0.02
\end{filecontents*}

\begin{document}
  \begin{tikzpicture}
    \begin{ternaryaxis}[
      title=Shapiro Diagramm,
      xlabel=Wasserdampf,
      ylabel=Luft,
      zlabel=Wasserstoff,
      label style={sloped},
      minor tick num=3,
      grid=both,
      axis on top,
      %
      xtick={0,.1,.2,...,1},
      xtick style=xcolor,
      xlabel style=xcolor,
      x axis line style=xcolor,
      xticklabel style=xcolor,
      %
      ytick={0,.1,.2,...,1},
      ytick style=ycolor,
      ylabel style=ycolor,
      y axis line style=ycolor,
      yticklabel style=ycolor,
      %
      ztick={0,.1,.2,...,1},
      ztick style=zcolor,
      zlabel style=zcolor,
      z axis line style=zcolor,
      zticklabel style=zcolor,
      %
      axis line style=very thick
    ]
      \addplot3[
        point meta=rand,
        tieline={tieline style={contour prepared}},
        fill=red!80,
      ]
      table [x=A_Steam, y=A_Air, z=A_H2]{ternary_data.txt};
    \end{ternaryaxis}
  \end{tikzpicture}
\end{document}

Die Gitterlinien würde ich nicht färben, weil jede Gitterlinie zwei Achsen verbindet.

Permanenter link

beantwortet 24 Apr '14, 22:33

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 25 Apr '14, 11:40

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
×2

gestellte Frage: 24 Apr '14, 17:01

Frage wurde gesehen: 10,601 Mal

zuletzt geändert: 25 Apr '14, 13:38