如何修改YellowBrick KElbowVisualizer生成图表的坐标轴标签?
修改KElbowVisualizer生成的轮廓系数图坐标轴标签
我使用以下代码通过KElbowVisualizer生成轮廓系数(silhouette)图:
# 导入KElbowVisualizer方法 # 实例化scikit-learn的K-Means模型 model = KMeans(random_state=0) # 实例化KElbowVisualizer,指定聚类数量范围与评估指标 titleKElbow = "title" visualizer = KElbowVisualizer(model, k=(2,7), metric='silhouette', timings=False,title = titleKElbow) # 拟合数据并可视化 visualizer.fit(df[['a','b','c']]) visualizer.poof()生成的图表中X轴标签为'k',我该如何修改图表的坐标轴标签?我查阅过文档,但目前只找到plt风格图表添加坐标轴标签的方法。
其实KElbowVisualizer本身就是基于matplotlib构建的,你完全可以通过它自带的ax属性来修改坐标轴标签,不用单独调用全局的plt方法,这样更精准也不会干扰其他图表的设置。这里有两种简单可行的方式:
方法一:渲染后直接修改
调用poof()完成图表渲染后,直接通过visualizer.ax设置轴标签:
# 拟合数据并可视化 visualizer.fit(df[['a','b','c']]) visualizer.poof() # 自定义坐标轴标签 visualizer.ax.set_xlabel("聚类数量") visualizer.ax.set_ylabel("轮廓系数得分")
方法二:渲染前提前配置
如果你想在图表显示前就完成标签设置,也可以先获取轴对象再修改,最后调用poof():
visualizer.fit(df[['a','b','c']]) # 先修改标签再渲染 visualizer.ax.set_xlabel("聚类数量") visualizer.ax.set_ylabel("轮廓系数得分") visualizer.poof()
要是你还想调整标签的样式(比如字体大小、颜色),直接在set_xlabel/set_ylabel里加参数就行,和matplotlib的用法完全一致:
visualizer.ax.set_xlabel("聚类数量", fontsize=12, color="#2c3e50") visualizer.ax.set_ylabel("轮廓系数得分", fontsize=12, color="#2c3e50")
这样就能轻松替换掉默认的X轴标签'k'和Y轴默认的'Silhouette Score'啦。
内容的提问来源于stack exchange,提问作者Thelonious Monk
相关产品推荐
相关产品推荐

