gpt4 book ai didi

R levelplot 调整轴

转载 作者:行者123 更新时间:2023-12-01 07:58:28 24 4
gpt4 key购买 nike

我想使用“lattice”包的 levelplot 函数将概率分布函数 (PDF) 绘制为 R 中的热图。我将 PDF 实现为一个函数,然后使用两个向量作为值范围和外部函数生成 levelplot 的矩阵。
我希望轴显示我的问题是我无法在两个轴上添加适当间隔的刻度线,分别显示两个实际值范围而不是列数或行数。

# PDF to plot heatmap
P_RCAconst <- function(x,tt,D)
{
1/sqrt(2*pi*D*tt)*1/x*exp(-(log(x) - 0.5*D*tt)^2/(2*D*tt))
}

# value ranges & computation of matrix to plot
tt_log <- seq(-3,3,0.05)
tt <- exp(tt_log)
tt <- c(0,tt)
x <- seq(0,8,0.05)
z <- outer(x,tt,P_RCAconst, D=1.0)
z[,1] <- 0
z[which(x == 1),1] <- 1.5
z[1,] <- 0.1

# plot heatmap using levelplot
require("lattice")
colnames(z) <- round(tt, 2)
rownames(z) <- x
levelplot(z, cex.axis=1.5, cex.lab=1.5, col.regions=colorRampPalette(c("blue", "yellow","red", "black")), at=seq(0,1.9,length=200), xlab="x", ylab="time t", main="PDF P(x,t)")

在没有为列和行分配名称的情况下,我收到以下图,其中刻度线是自然间隔的(与其他 R 函数使用的一样),但值是行号和列号:
Without assigning names to columns and rows I receive the following plot where the tick marks are naturally spaced (as used from other R-functions) but the values are the row & column numbers

通过为列和行分配名称,我收到以下图,其中刻度线根本不可读,但至少对应于实际值:

With assigning names to columns and rows I receive the following plot where the tick marks are not at all readable but at least correspond to the actual values

我已经在这个看似微不足道的问题上花费了太多时间,因此非常感谢您的帮助!

最佳答案

也许这个基本的例子可以帮助,

d = data.frame(x=rep(seq(0, 10, length=nrow(volcano)), ncol(volcano)), 
y=rep(seq(0, 100, length=ncol(volcano)), each=nrow(volcano)),
z=c(volcano))

library(lattice)

# let lattice pick pretty tick positions
levelplot(z~x*y, data=d)

# specific tick positions and labels
levelplot(z~x*y, data=d, scales=list(x=list(at=c(2, 5, 7, 9),
labels=letters[1:4])))

# log scale
levelplot(z~x*y, data=d, scales=list(y=list(log=TRUE)))

这一切都在 ?xyplot 中描述,尽管不可否认,这是一长页文档。

关于R levelplot 调整轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17591469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com