Yellowbrick 更改图例并添加标题

Yellowbrick change legend and add title

我用 yellowbrick RadViz 创建了一个图表:

visualizer = RadViz(classes=labels)
visualizer.fit(X, y) 
visualizer.transform(X)  
visualizer.show()

如您所见,图例覆盖了一些特征名称: 此外,我想编辑标题。 我试过:

visualizer.ax.set_title("new title")
visualizer.fig.legend(bbox_to_anchor=(1.02, 1), loc=0, borderaxespad=0., title = "level")

但是set_title没有效果。使用 fig.legend ,确实创建了一个新的图例,但我无法删除原来的图例。

如何做到?

您可以使用 title 参数修改 Yellowbrick 图的标题,并使用 size 参数增加轴的大小,这可能有助于标签重叠。大小指定为像素尺寸的元组:

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()

或者,可以通过绕过可视化工具的 show()finalize() 方法跳过添加 Yellowbrick 图例和标题的步骤,然后直接修改 ax object 使用您的情节需要的任何自定义图例位置:

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()