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

如何为R语言persp3d绘制的3D图设置自定义轴刻度标签

解决方法

你之前调用bbox3d的用法有误,它的xlab参数用于设置轴标题,无法自定义刻度标签。要将x轴替换为信用评级标签,按以下逻辑调整代码即可:

  • 先定义与X序列顺序完全对应的评级标签,长度需和评级维度的样本数(dim(aggregate_row)[1])匹配
  • 调用persp3d时关闭默认x轴刻度
  • 调用axis3d手动注入自定义x轴刻度

你提供的场景对应的调整后代码如下:

Y <- c(1:dim(aggregate_row)[2]) # 时间期限维度
X <- c(1:dim(aggregate_row)[1]) # 信用评级维度
Z <- as.matrix.data.frame(aggregate_row)

# 颜色映射逻辑保持不变
cc <- colorRamp(rev(rainbow(10)))
Zsc <- (Z-min(Z))/diff(range(Z))
rgbvec2col <- function(x) do.call(rgb,c(as.list(x),list(max=500)))
colvec <- apply(cc(Zsc),1,rgbvec2col)

# 自定义评级标签,按你实际的评级顺序调整,长度和X的数量完全匹配
rating_labels <- c("AAA", "AA+", "AA", "AA-", "A+", "A", "A-", 
                   "BBB+", "BBB", "BBB-", "BB+", "BB", "BB-", 
                   "B+", "B", "B-", "CCC+", "CCC", "CCC-")

# 绘制3D图,同时关闭默认x轴刻度
persp3d(X,Y,Z,col=colvec,
        xlab="Ratings",ylab="tenor",zlab="Default Rate",
        front="lines",back="lines",
        xat = NA)

# 手动添加自定义x轴刻度,可调整cex参数控制标签字号避免拥挤
axis3d(edge = "x", at = X, labels = rating_labels, cex = 0.7)

如果你后续改用surface3d绘制图形,逻辑完全一致,绘制完成后调用axis3d添加自定义刻度即可。

你当前生成的默认数值刻度3D图效果如下:
企业违约率3D线图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:09:00