I'm wondering if there's something in Mathematica
similar to the built-in function in R
shown in the figures below, borrowed from this post, possibly with flexible axes "orientation", ticksmarks, tick numbers, and gridlines.
By a 3-category Dirichlet distribution, it means that each data point is in the form of $\{u, v, 1-u-v\}$, where the degree of freedom is two with $0<u<1$, $0<v<1$, and $0<u+v<1$.
Currently I've been doing something like the demonstrative code below, transforming the data points myself from $\{u,v\}$ in the usual Cartesian coordinates to the "triangular" coordinates. (here the "vertical" axis is flipped just like those plots from R
)
ClearAll[Opt, data, dN];
dN = 100;
data = RandomReal[{0, 1}, {dN, 3}];
data = data/(Total /@ data);
Opt = {PlotStyle -> PointSize -> Medium, AspectRatio -> 1, PlotRange -> {{0, 1}, {0, 1}}, GridLines -> {{1}, {1}} };
GraphicsRow[{ListPlot[data[[;; , 1 ;; 2]],
Epilog -> Line@{{1, 0}, {0, 1}}, Evaluate@Opt] ,
ListPlot[ Thread@{1/2 (1 + data[[;; , 1]] - data[[;; , 2]]), Sqrt[3] data[[;; , 3]]/2} ,
Epilog -> {FaceForm[], EdgeForm@Thickness@.01, Triangle@{{0, 0}, {1, Sqrt[3]}/2, {1, 0}}}, Evaluate@Opt]}, ImageSize -> 500]
Firstly I feel kind of stupid having to do it this way every time. Secondly, it's tedious to add the tickmarks, gridlines, etc.
So, repeating my question statement in the opening line:
Is there actually a similar built-in graphics package in
MMA
? If not, is there a convenient way to achieve some if not all the features in a "triangular plot" shown in theR
plots?
I would imagine that Dirichlet distribution is pretty common and someone have developed something practically useful already.
Pointers to references or any suggestions will be appreciated.
RLink
? $\endgroup$RLink
, however, I prefer the style of the graphics primitives inMMA
. It's also about consistency, it feels a bit weird seeing anR
plot among otherMMA
plots, either in formal or informal presentation. $\endgroup$