You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自定义scikitplot.metrics绘图的线宽与轴刻度颜色?

解决scikit-plot KS统计量图样式自定义问题

scikit-plot的plot_ks_statistic函数会返回matplotlib的Axes对象,直接用plt全局设置样式不生效的原因是:函数内部已经创建并初始化了轴实例,后续全局设置无法覆盖已有属性。直接操作返回的轴对象就能实现你要的自定义效果:

步骤1:获取绘图的轴对象

调用绘图函数时接收返回值:

import matplotlib.pyplot as plt
import scikitplot as skplt

# 替换成你的真实数据y_true和y_probas
ax = skplt.metrics.plot_ks_statistic(y_true, y_probas)

步骤2:设置线条宽度为1.5pt

遍历轴上的所有线条,修改线宽:

for line in ax.lines:
    line.set_linewidth(1.5)

步骤3:将轴刻度设为黑色

使用tick_params方法直接设置刻度颜色,若需要边框(轴脊)也为黑色,可一并设置:

# 同时设置x、y轴刻度颜色为黑色
ax.tick_params(axis='both', colors='black')

# 可选:将四个边框也设为黑色
for spine in ax.spines.values():
    spine.set_color('black')

完整可运行示例

import matplotlib.pyplot as plt
import scikitplot as skplt
from sklearn.datasets import make_classification
from sklearn.ensemble import RandomForestClassifier

# 生成示例分类数据
X, y = make_classification(n_samples=1000, n_classes=2, random_state=42)
# 训练模型获取预测概率
model = RandomForestClassifier(random_state=42)
model.fit(X[:800], y[:800])
y_probas = model.predict_proba(X[800:])

# 绘制KS图并获取轴对象
ax = skplt.metrics.plot_ks_statistic(y[800:], y_probas)

# 自定义样式
for line in ax.lines:
    line.set_linewidth(1.5)
ax.tick_params(axis='both', colors='black')
for spine in ax.spines.values():
    spine.set_color('black')

plt.show()

内容的提问来源于stack exchange,提问作者Cesar Pereira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:55:20