You can modify the title of a Yellowbrick plot using the title
parameter, and use the size
parameter to increase the size of the axes, which may help with overlapping labels. Size is specified as a tuple of pixel dimensions:
from yellowbrick.features import RadViz
from yellowbrick.datasets import load_occupancy
X, y = load_occupancy()
visualizer = RadViz(
classes=["occupied", "vacant"],
title="My custom title",
size=(800, 600)
)
visualizer.fit(X, y)
visualizer.transform(X)
visualizer.show()

Alternatively, it is possible to skip the step of adding the Yellowbrick legend and title by circumventing the visualizer's show()
and finalize()
methods, and then directly modifying the ax object using whatever custom legend position you need for your plot:
from yellowbrick.features import RadViz
from yellowbrick.datasets import load_occupancy
X, y = load_occupancy()
visualizer = RadViz()
visualizer.fit(X, y)
visualizer.transform(X)
custom_viz = visualizer.ax
custom_viz.set_title("New title")
custom_viz.figure.legend(
bbox_to_anchor=(1.02, 1),
borderaxespad=0.0,
title="level",
loc=0,
)
custom_viz.figure.show()