首页 > 解决方案 > Yellowbrick 更改图例并添加标题

问题描述

我用 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 ,确实创建了一个新图例,但我无法删除原始图例。

怎么做到呢?

标签: pythonmatplotlibdata-visualizationyellowbrick

解决方案


您可以使用该参数修改 Yellowbrick 图的标题title,并使用该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 对象:

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

推荐阅读