6

我正在使用 lattice 包在 R 中绘制一些曲面。我找不到选择表面颜色的方法。这是一个例子:

在此处输入图像描述

这是我如何绘制每个的示例:

theseCol=heat.colors(150)
mm=paste("WB numbers where present\n(",nstoch," sims)",sep="")
WBnumbers=wbPrev_series
rownames(WBnumbers)=KList
colnames(WBnumbers)=iMwbList
wireframe(WBnumbers, zlim=c(0,max(wbPrev_series,na.rm=TRUE)), colorkey=FALSE, 
                    col.regions=theseCol, scales = list(arrows = FALSE), drape = TRUE, 
                    main=mm,  zlab="", xlab="K", ylab="iMwb")

我希望第一个表面保持原样,但其他表面的颜色不是由它们的 z 水平而是由第一个表面的 z 水平着色。我尝试了多种方法,但线框始终接受我给出的颜色作为当前变量的可能范围。

无论如何,这可以做到吗?谢谢

4

1 回答 1

2

这是几年前 Dave W. 在 R-help 邮件列表上发布的答案。您可能可以谷歌搜索整个线程。

来自:David Winsemius 按照 help(wirefrane) 中的建议,您需要查看
levelplot 部分以获取建议:正确规范 colorkey
并点击帮助页面中的相应链接。
无法从包含的信息中确定您的数据是否是线框的正确输入
,尽管我认为您报告的成功表明它是。


在阅读了我指出的材料后,这是一个未经测试的(因为没有什么可测试的)疯狂的猜测:

wireframe(data.m,aspect = c(0.3), shade=TRUE, screen = list(z = 0, x =  
-45),
    light.source = c(0,0,10), distance =  
0.2,zlab="Freq",xlab="base",ylab="Fragment",
    col=level.colors(x, at = do.breaks(range(data.m), 30),
                     col.regions = colorRampPalette(c("red", "white",  
"blue")(30))
       )

编辑:根据乔希的要求,我玩了一下。以下将应用颜色阴影(悬垂):

wireframe(dmat,drape=TRUE,col='black',col.regions = colorRampPalette(c("red", "white",  "blue"))(30) )

它设置了“悬垂”颜色,但不设置网格线本身。wireframe不尊重真是太可惜了par(new=TRUE),因为如果这样做,我们可以将数据矩阵分割成 z 范围并一次覆盖一种颜色。

当我回到家时,我将不得不检查我的带有 R 图形的旧实验的“存档”,但我想我最终使用了这个scatterplot3d包来获得与数据相关的网格颜色。

于 2013-05-23T18:21:11.417 回答