1
$\begingroup$

I have these commands

j0=Q1>0&&Q2>0&&Q3>0&&Q1+3 Q2+2 Q3<1;j1=j0&&Q1^2+3 Q2 Q1+(3 Q2+Q3)^2<3 Q2+2 Q1 Q3;Choi=2 Q3+1<2 Q1+3 Q2;MUB=Q1>3 Q2+4 Q3;Show[RegionPlot3D[j1,{Q1,0,1/2},{Q2,0,1/3},{Q3,0,1/4},AxesLabel->{"Subscript[Q, 1]","Subscript[Q, 2]","Subscript[Q, 3]"}],RegionPlot3D[j0&&MUB,{Q1,0,1/2},{Q2,0,1/3},{Q3,0,1/4},AxesLabel->{"Subscript[Q, 1]","Subscript[Q, 2]","Subscript[Q, 3]"}],RegionPlot3D[j0&&Choi,{Q1,0,1/2},{Q2,0,1/3},{Q3,0,1/4},AxesLabel->{"Subscript[Q, 1]","Subscript[Q, 2]","Subscript[Q, 3]"}],RegionPlot3D[j1&&MUB,{Q1,0,1/2},{Q2,0,1/3},{Q3,0,1/4},AxesLabel->{"Subscript[Q, 1]","Subscript[Q, 2]","Subscript[Q, 3]"}]]

which produces a three-dimensional plot

https://www.wolframcloud.com/obj/34c06e57-f136-424f-852a-6c8ad5928b08

I want to label the first (largest) object produced "PPT", the second object, "MUB", and the third object, "Choi". How might I proceed to do so?

Also, I'd appreciate any general recommendations on enhancement/presentation of the plot (coloring,...)

$\endgroup$

1 Answer 1

1
$\begingroup$
plots = RegionPlot3D[#, {Q1, 0, 1/2}, {Q2, 0, 1/3}, {Q3, 0, 1/4}] & /@ 
  {j1, j0 && MUB, j0 && Choi};

coords = Cases[#, GraphicsComplex[x_,__] :> Median/@Transpose[x], All][[1]]& /@ plots;
labels = {"PPT", "MUB", "CHOI"};
texts3d = Graphics3D[MapThread[Text, {labels, coords}], Axes -> True];

Show[plots, texts3d, AxesLabel -> (Subscript[Q, #] & /@ {1, 2, 3})]

enter image description here

$\endgroup$
5
  • $\begingroup$ Good, and thanks, but I don't perceive the "MUB" label. $\endgroup$ Commented Jul 15, 2019 at 21:22
  • $\begingroup$ @Paul, changed the text coordinates for better placement of labels. $\endgroup$
    – kglr
    Commented Jul 15, 2019 at 21:30
  • $\begingroup$ Good. I'll give a check to the answer. Any point/value in the use of different colors,...? (I'm not very knowledgeable in the graphics options,...) Could the labels be made to stand out more prominently? Just wondering about these things--thanks very much in any case. $\endgroup$ Commented Jul 15, 2019 at 21:43
  • 1
    $\begingroup$ @Paul, you can use something like texts3d = Graphics3D[MapThread[Text[Style[#, Red, Bold, FontSize -> 16], #2]&, {labels, coords}], Axes -> True] to make the labels stand out. $\endgroup$
    – kglr
    Commented Jul 15, 2019 at 21:53
  • 1
    $\begingroup$ Wow, they really stand out with that last suggestion! $\endgroup$ Commented Jul 15, 2019 at 22:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.