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

标签 python matplotlib scikit-learn yellowbrick

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

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

enter image description here

最佳答案

更新: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()

这会生成以下图像:

Small Font Confusion Matrix

您可以在 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()

这会产生以下图像,内部字体稍大:

Large Font Confusion Matrix

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

但请注意,show 会调用 finalize 函数,因此在调用 show< 后应修改标题、轴标签等一些内容,或者通过调用 finalize 然后调用 plt.show() 来短路 show

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

关于python - Yellowbrick:增加 Yellowbrick 生成的图表上的字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47450804/

相关文章:

python - 在 python 中复制缓冲区时优化内存使用

python - Django:如何返回与外键关联的所有模型,包括这些模型的所有属性?

python - 如何制作与数据帧中的一系列值相对应的不同散点大小和颜色的散点图?

Pandas:如何按一组序数值对数据框进行分组?

python - 为什么带有 Scikit-learn 的 Sagemaker 无法工作,并给出 ParamValidationError?

python - NaiveBayes 和 LogistcRegression 之间令人困惑的结果

python - django-session-security session 不会过期

python - Sonarqube python 插件单元测试深入分析

python - matplotlib 中的自定义标记

python - 无法下载和安装 scikit-learn