R:当row.values和column.values的范围很小时,Levelplot给出无关的空格

时间:2012-01-05 23:58:21

标签: r statistics plot lattice levelplot

当使用R中的levelplot(来自晶格包)时,我注意到如果column.values和row.values的范围很小(例如,range小于1),则在图的边缘周围有额外的空白。如果column.values和row.values的范围较大(例如,范围是10),则此问题消失。

以下是一个说明问题的示例:

library(gplots) # for colorpanel()
library(lattice) # for levelplot()

#generate data
myData = runif(100) #generate vector of 100 random numbers
myMatrix=matrix(myData, sqrt(length(myData)), sqrt(length(myData)))

#generate vectors that will be used for col.values and row.values
labelIncrement= 1/10
labelLow = -0.5
labelHigh = 0.5 - labelIncrement

dataForRow.values <- c(seq(labelLow, labelHigh, labelIncrement))
dataForColumn.values <- c(seq(labelLow, labelHigh, labelIncrement))

myLevelsArbitrary <- c(0, 0.2, 0.4, 0.6, 0.8, 1.0)
myColors = topo.colors(length(myLevelsArbitrary)+1)

myLevelPlot = levelplot(myMatrix,
    at=myLevelsArbitrary,
    col.regions=myColors,
    column.values=dataForColumn.values,
    row.values=dataForRow.values,
    main="Title", 
    xlab="Distance from center (cm)", 
    ylab="Distance from center (cm)",
    colorkey=list(width=3))

plot(myLevelPlot) 

This image是myLevelPlot。

现在,让我们调整上面的代码,以获得更大的row.values和column.values范围:

labelIncrement= 1
labelLow = -5
labelHigh = 5 - labelIncrement

This myLevelPlot image是通过重新运行具有更大范围的row.values和column.values的代码生成的。请注意,下图中没有出现无关的空格。< / p>

那么,当row.values和column.values的范围很小时,如何避免出现这个无关的空格呢?

1 个答案:

答案 0 :(得分:4)

这是一个艰难的。这有效:scales = "sliced"

myLevelPlot = levelplot(myMatrix,
    at=myLevelsArbitrary,
    col.regions=myColors,
    column.values=dataForColumn.values,
    row.values=dataForRow.values,
    main="Title",
    xlab="Distance from center (cm)",
    ylab="Distance from center (cm)",
    scales = "sliced",
    colorkey=list(width=3)
    )
plot(myLevelPlot)

我不喜欢这两个警告,但有时警告可以忽略......