von feuersaenger » Sa 12. Okt 2013, 12:17
Hi,
ich denke Du hast zwei Optionen: entweder "rotate around" oder "yscale=-1".
Tatsaechlich weiss ich nicht so ganz genau, wie es sein soll... das solltest Du mal ausprobieren.
"rotate around" rotiert um 180 grad, also genau was Du auch gemacht hast - allerdings habe ich das Zentrum der rotation so spezifiziert, dass Dein yshift wegfaellt. Nachteil ist (wie Du schon bemerkt hast), dass die tick label dann durcheinanderkommen. In meinem Fall habe ich die rotation in einen tikz scope untergebracht, damit das *gesamte* Dreieck (inklusive labels) rotiert wird (das vermeidet etwas unordnung scheinbar). Kann sein, dass hier pgfplots was verbessert werden sollte...
Die Alternative yscale=-1 ist eine Spiegelung und erscheint fast noch einfacher - und ist vermutlich auch das, was Du willst, denn Du moechtest doch vermutlich, dass die Ecken noch zu denselben Quantitaeten gehoeren, oder? Sonst wuerden die ja auch vertauscht. In dem Fall koenntest Du auch einfach die tick label wieder richten, indem die nochmal gespiegelt werden, siehe mein Beispiel.
Beachte, dass dies deshalb zu einem anderen Ergebnis fuehrt! Du muesstest also gut pruefen.
Hier ist beides drin; Du muesstest ein bisschen rumprobieren, was Du brauchst:
\documentclass{standalone}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage[eulergreek]{sansmath}
\pgfplotsset{
compat=newest,
every axis plot post/.append style={black,mark=none},
}
\usepgfplotslibrary{ternary}
\usetikzlibrary{
pgfplots.ternary,
calc,
arrows,
}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\begin{ternaryaxis}[
% xtick=\empty,
% ytick=\empty,
% ztick=\empty,
]
\addplot3 table {
0.2 0.8 0
0.2 0 0.8
};
\addplot3 table {
0.6 0.14 0.26
0 0.35 0.65
};
\node[fill,circle] (rotateaxis) at (axis cs:0,0.5,0.5) {};
\end{ternaryaxis}
\begin{scope}[
% rotate around={180:(rotateaxis)},
yscale=-1,
/pgfplots/ticklabel style={yscale=-1},
]
\begin{ternaryaxis}[
% xtick=\empty,
% ytick=\empty,
% ztick=\empty,
% grid=none,
]
\addplot3[solid] table {
0.1 0.9 0
0.1 0 0.9
};
\addplot3[solid] table {
0 0.65 0.35
0.1 0.585 0.315
};
\end{ternaryaxis}
\end{scope}
\end{tikzpicture}
\end{document}
Mit liebem Gruss
Christian
Hi,
ich denke Du hast zwei Optionen: entweder "rotate around" oder "yscale=-1".
Tatsaechlich weiss ich nicht so ganz genau, wie es sein soll... das solltest Du mal ausprobieren.
"rotate around" rotiert um 180 grad, also genau was Du auch gemacht hast - allerdings habe ich das Zentrum der rotation so spezifiziert, dass Dein yshift wegfaellt. Nachteil ist (wie Du schon bemerkt hast), dass die tick label dann durcheinanderkommen. In meinem Fall habe ich die rotation in einen tikz scope untergebracht, damit das *gesamte* Dreieck (inklusive labels) rotiert wird (das vermeidet etwas unordnung scheinbar). Kann sein, dass hier pgfplots was verbessert werden sollte...
Die Alternative yscale=-1 ist eine Spiegelung und erscheint fast noch einfacher - und ist vermutlich auch das, was Du willst, denn Du moechtest doch vermutlich, dass die Ecken noch zu denselben Quantitaeten gehoeren, oder? Sonst wuerden die ja auch vertauscht. In dem Fall koenntest Du auch einfach die tick label wieder richten, indem die nochmal gespiegelt werden, siehe mein Beispiel.
Beachte, dass dies deshalb zu einem anderen Ergebnis fuehrt! Du muesstest also gut pruefen.
Hier ist beides drin; Du muesstest ein bisschen rumprobieren, was Du brauchst:
[code]
\documentclass{standalone}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage[eulergreek]{sansmath}
\pgfplotsset{
compat=newest,
every axis plot post/.append style={black,mark=none},
}
\usepgfplotslibrary{ternary}
\usetikzlibrary{
pgfplots.ternary,
calc,
arrows,
}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\begin{ternaryaxis}[
% xtick=\empty,
% ytick=\empty,
% ztick=\empty,
]
\addplot3 table {
0.2 0.8 0
0.2 0 0.8
};
\addplot3 table {
0.6 0.14 0.26
0 0.35 0.65
};
\node[fill,circle] (rotateaxis) at (axis cs:0,0.5,0.5) {};
\end{ternaryaxis}
\begin{scope}[
% rotate around={180:(rotateaxis)},
yscale=-1,
/pgfplots/ticklabel style={yscale=-1},
]
\begin{ternaryaxis}[
% xtick=\empty,
% ytick=\empty,
% ztick=\empty,
% grid=none,
]
\addplot3[solid] table {
0.1 0.9 0
0.1 0 0.9
};
\addplot3[solid] table {
0 0.65 0.35
0.1 0.585 0.315
};
\end{ternaryaxis}
\end{scope}
\end{tikzpicture}
\end{document}
[/code]
Mit liebem Gruss
Christian