Yellowbrick:在 Yellowbrick 生成的图表上增加字体大小

Posted

技术标签:

【中文标题】Yellowbrick:在 Yellowbrick 生成的图表上增加字体大小【英文标题】:Yellowbrick: Increasing font size on Yellowbrick generated charts 【发布时间】:2018-05-07 03:25:08 【问题描述】:

有没有办法增加 Yellowbrick 生成的图表的字体大小?我觉得阅读文字很困难。我在文档中找不到任何内容。

我在 Jupyter Notebook 中使用 Python 3.6、Yellowbrick 0.5。

【问题讨论】:

【参考方案1】:

更新:yellowbrick API 现在使用viz.show 而不是viz.poof

Yellowbrick 包装了 matplotlib 以产生可视化效果,因此您可以通过直接调用 matplotlib 来影响图形的所有视觉设置。我发现最简单的方法是访问Visualizer.ax 属性并直接在那里进行设置,当然,您可以直接使用plt 来管理全局图形。

下面是一些代码,可以生成与您的示例类似的示例:

import pandas as pd 

from yellowbrick.classifier import ConfusionMatrix 
from sklearn.ensemble import AdaBoostClassifier
from sklearn.model_selection import train_test_split as tts

data = pd.read_csv('examples/data/occupancy/occupancy.csv') 

features = ["temperature", "relative humidity", "light", "C02", "humidity"]

# Extract the numpy arrays from the data frame 
X = data[features].as_matrix()
y = data.occupancy.as_matrix()

X_train, X_test, y_train, y_test = tts(X, y, test_size=0.2)

clf = AdaBoostClassifier()
viz = ConfusionMatrix(clf)

viz.fit(X_train, y_train)
viz.score(X_test, y_test)
viz.show()

这会生成以下图像:

您可以在score之后和show之前开始管理图形,如下所示:

viz.fit(X_train, y_train)
viz.score(X_test, y_test)

for label in viz.ax.texts:
    label.set_size(12)

viz.show()

这将生成以下图像,内部字体稍大:

这里发生的是我直接访问可视化器上的 matplotlib Axes 对象,其中包含绘图的所有元素。网格中间的标签是文本对象,所以我遍历所有文本对象,将它们的大小设置为 12pt。如果需要,此技术可用于在显示之前修改任何视觉元素(通常我使用它在可视化上添加注释)。

但是请注意,show 调用了 finalize 函数,因此在调用 show 或通过调用 @ 短路 show 后,应修改标题、轴标签等内容987654338@ 然后plt.show()

此特定代码仅适用于 ConfusionMatrix,但我在 Yellowbrick 库中添加了一个 issue,希望将来能使其更容易或至少更具可读性。

【讨论】:

以上是关于Yellowbrick:在 Yellowbrick 生成的图表上增加字体大小的主要内容,如果未能解决你的问题,请参考以下文章

ModuleNotFoundError 在 Python 中安装 Yellowbrick

yellowbrick牛逼,机器学习“炼丹师”“调参侠”们有福了

更改 Yellowbrick 可视化颜色

python机器学习可视化工具Yellowbrick介绍及平行坐标图实战示例

Scikit-learn 和 Yellowbrick 给出不同的分数

提供的模型不是 YellowBrick 中的聚类估计器