Radviz¶
Radviz maps a higher dimensional space with a non-linear function to two dimensions. Let us visualize some test data:
[1]:
from pymoo.util.ref_dirs import get_reference_directions
from pymoo.problems import get_problem
ref_dirs = get_reference_directions("uniform", 6, n_partitions=5)
F = get_problem("dtlz1").pareto_front(ref_dirs)
A simple Radviz plot with points can be created by:
[2]:
from pymoo.visualization.radviz import Radviz
Radviz().add(F).show()
[2]:
<pymoo.visualization.radviz.Radviz at 0x108f97a40>
The plot can be further customized by supplying a title, labels, and by using the plotting directives from matplotlib.
[3]:
plot = Radviz(title="Optimization",
legend=(True, {'loc': "upper left", 'bbox_to_anchor': (-0.1, 1.08, 0, 0)}),
labels=["profit", "cost", "sustainability", "environment", "satisfaction", "time"],
endpoint_style={"s": 70, "color": "green"})
plot.set_axis_style(color="black", alpha=1.0)
plot.add(F, color="grey", s=20)
plot.add(F[65], color="red", s=70, label="Solution A")
plot.add(F[72], color="blue", s=70, label="Solution B")
plot.show()
[3]:
<pymoo.visualization.radviz.Radviz at 0x130978680>
Note that radviz plots are by default normalized.
API¶
-
class
pymoo.visualization.radviz.
Radviz
(self, endpoint_style={}, **kwargs) Radviz Plot
- Parameters
- axis_styledict
Most of the plots consists of an axis. The style of the axis, e.g. color, alpha, …, can be changed to further modify the plot appealing.
- endpoint_styledict
Endpoints are drawn at each extreme point of an objective. This style can be modified.
- labelsstr or list
The labels to be used for each variable provided in the plot. If a string is used, then they will be enumerated. Otherwise, a list equal to the number of variables can be provided directly.
- Other Parameters
- figsizetuple
The figure size. Default (figsize=(8, 6)). For some plots changing the size might have side-effects for position.
- titlestr or tuple
The title of the figure. If some additional kwargs should be provided this can be achieved by providing a tuple (“name”, {“key” : val}).
- legendstr
Whether a legend should be shown or not.
- tight_layoutbool
Whether tight layout should be used.
- cmapcolormap
For some plots different kind of colors are used. The colormap can be changed to modify the color sequence for the plots.