第一种:标签在整个图形外面——只要采用PlotLegends来标注
如下例子
Clear["Global`*"]
Manipulate[
RegionPlot[{p1 - r <= 0,
0 < p1 - r < s/2 && p1 <= (1 + r^2)/2 - (1 - p2)^2/2,
s/2 < p1 - r < s &&
p1 <= ((1 + r^2)/2 - (1 - p2)^2/2 + \[Alpha]*r*(2*r + s))/(
1 + 2*\[Alpha]*r),
p1 - r >= s &&
p1 <= ((1 + r^2)/2 - (1 - p2)^2/2 + \[Alpha]*r^2)/(
1 + \[Alpha]*r), (0 < p1 - r < s/2 &&
p1 > (1 + r^2)/2 - (1 - p2)^2/2) || (s/2 < p1 - r < s &&
p1 > ((1 + r^2)/2 - (1 - p2)^2/2 + \[Alpha]*r*(2*r + s))/(
1 + 2*\[Alpha]*r)) || (p1 - r >= s &&
p1 > ((1 + r^2)/2 - (1 - p2)^2/2 + \[Alpha]*r^2)/(
1 + \[Alpha]*r))}, {r, 0, p2}, {p1, s, p2},
PlotLegends -> {"ss", "ab-cl<fl", "ad-cl>fl", "ab-no fl", "w"},
FrameLabel -> {r, p1}, PlotLabel -> "region"], {p2, 0 + 1/100000,
1 - 1/100000}, {s, 0, p2/2 - 1/100000}, {\[Alpha], 0, 1}]
示意图如下:
第二种:标签在对应的区域内
主要是利用Labeled来确定标签位置,其中Center——中间,Above——上面,Below——下面,Left——左边,Right——右边
如下例子:
Clear["Global`*"]
Manipulate[
RegionPlot[{Labeled[p1 - r <= 0, "ss", Center],
Labeled[0 < p1 - r < s/2 && p1 <= (1 + r^2)/2 - (1 - p2)^2/2,
"ab-cl<fl", Center],
Labeled[s/2 < p1 - r < s &&
p1 <= ((1 + r^2)/2 - (1 - p2)^2/2 + \[Alpha]*r*(2*r + s))/(
1 + 2*\[Alpha]*r), "ab-cl>fl", Center],
Labeled[p1 - r >= s &&
p1 <= ((1 + r^2)/2 - (1 - p2)^2/2 + \[Alpha]*r^2)/(
1 + \[Alpha]*r), "adb-no fl", Center],
Labeled[(0 < p1 - r < s/2 &&
p1 > (1 + r^2)/2 - (1 - p2)^2/2) || (s/2 < p1 - r < s &&
p1 > ((1 + r^2)/2 - (1 - p2)^2/2 + \[Alpha]*r*(2*r + s))/(
1 + 2*\[Alpha]*r)) || (p1 - r >= s &&
p1 > ((1 + r^2)/2 - (1 - p2)^2/2 + \[Alpha]*r^2)/(
1 + \[Alpha]*r)), "w", Center]}, {r, 0, p2}, {p1, s, p2},
FrameLabel -> {r, p1}, PlotLabel -> "region"], {p2, 0 + 1/100000,
1 - 1/100000}, {s, 0, p2/2 - 1/100000}, {\[Alpha], 0, 1}]
示例图如下: