let
points = [
(1.0, 4.0), # 1: front
(2.0, 2.5), # 2: front
(5.0, 1.0), # 3: front
(4.5, 1.0), # 4: front
(3.0, 2.6), # 5: dominated by 2
(4.0, 2.0), # 6: front
(4.5, 2.8), # 7: dominated by 3
(1.5, 3.2), # 8: front
]
labels = ["1", "2", "3", "4", "5", "6", "7", "8"]
fig = Figure(; size=(460, 420))
ax = Axis(
fig[1, 1];
xlabel=L"f_1 \text{ (minimize)}",
ylabel=L"f_2 \text{ (minimize)}",
xticksvisible=false,
xticklabelsvisible=false,
yticksvisible=false,
yticklabelsvisible=false,
limits=(0, 6, 0, 5),
)
scatter!(ax, [0.4], [0.5]; marker=:star5, markersize=28, color=:goldenrod)
text!(ax, 0.6, 0.55; text="ideal", fontsize=12, color=:goldenrod)
for (i, (x, y)) in enumerate(points)
scatter!(ax, [x], [y]; markersize=22, color=:steelblue)
text!(ax, x - 0.18, y + 0.22; text=labels[i], fontsize=18, font=:bold)
end
fig
end