我有一個 persp3d 圖,顯示了基于評級(AAA 到 CCC-)和時間(1 到 20 年)的公司違約率。我設法顯示了一個以軸為數字的線圖,但是我希望它們帶有標簽 AAA 到 CCC- 而不是 5,10,15。我也嘗試過使用surface3d()和bbox3d(),但沒有成功。
我現在使用的代碼是:
Y <- c(1:dim(aggregate_row)[2]) # Tenors
X <- c(1:dim(aggregate_row)[1]) # Ratings
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)
#surface3d(X,Y,Z,col=colvec)
#bbox3d(color=c("white","black"), xlab=c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "s", "t", "v"))
persp3d(X,Y,Z,col=colvec,xlab="Ratings",ylab="tenor",zlab="Default Rate",front="lines",back="lines")
uj5u.com熱心網友回復:
你沒有包括你的資料,所以我會偽造一些:
aggregate_row <- matrix(1:400, 20, 20)
得到你想要的軸的方法是告訴persp3d不要畫軸,然后自己畫。例如,
library(rgl)
persp3d(X,Y,Z,col=colvec,xlab="Ratings",ylab="tenor",zlab="Default Rate",front="lines",back="lines",axes=FALSE)
box3d()
axis3d("x") # the default
axis3d("y", at = c(5, 10, 15), labels = c("AAA", "BBB", "CCC"))
axis3d("z- ") # move to a different edge
這會產生以下圖片:

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/338794.html
