Yellowbrick сменить легенду и добавить заголовок - PullRequest
2 голосов
/ 12 февраля 2020

Я создал график с желтым кирпичиком. RadViz:

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

Как видите, легенда переопределяет некоторые имена элементов: enter image description here Более того, я хочу отредактировать заглавие. Я пытался с:

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, новая легенда действительно была создана, но я не смог удалить исходную легенду.

Как это сделать?

1 Ответ

6 голосов
/ 13 февраля 2020

Вы можете изменить заголовок графика 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()

Radial visualization with custom title and size

Кроме того, можно пропустить этап добавления легенды и заголовка Yellowbrick. обойдя методы show() и finalize() визуализатора, а затем непосредственно изменив объект топора, используя любую пользовательскую позицию легенды, необходимую для вашего сюжета:

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