标签: lattice

如果使用source()运行R包格子将不会绘制

我开始使用lattice图形包但我偶然发现了一个问题.我希望有人可以帮助我.我想用相应的函数绘制直方图.

这是文件foo.r:

library("lattice")

data <- data.frame(c(1:2),c(2:3))
colnames(data) <- c("RT", "Type")

pdf("/tmp/baz.pdf")
histogram( ~ RT | factor(Type), data = data)
dev.off()
Run Code Online (Sandbox Code Playgroud)

当我使用R --vanilla < foo.r它运行此代码时,一切正常.

不过,如果我使用的是第二档bar.r

source("bar")
Run Code Online (Sandbox Code Playgroud)

并运行R --vanilla < bar.r代码生成错误的pdf文件.现在我发现source("bar", echo=TRUE)解决了这个问题.这里发生了什么?这是一个错误还是我错过了什么?

我正在使用R版本2.13.1(2011-07-08)和lattice_0.19-30

graphics plot r lattice

9
推荐指数
1
解决办法
4725
查看次数

将标签添加到格子条形图

我想将每个条形的值放在每个条形图顶部的条形图(晶格)中.但是,我找不到任何可以实现此目的的选项.我只能找到轴的选项.

r bar-chart lattice

8
推荐指数
1
解决办法
5768
查看次数

在ggplot2中使用grconvertX/grconvertY

我想弄清楚如何在ggplot中使用grconvertX/grconvertX.我的最终目标是使用和从用户坐标到设备坐标向ggplot2图形(可能是晶格)添加注释.我知道它可以用grobs完成,但我想知道是否有更简单的方法.grid.textgrid.lines

以下代码允许我将值从用户坐标传递到ndc坐标,并使用这些值来注释绘图grid.text.

graphics.off()      # close graphics windows   

library(grid)
library(gridBase)


test= data.frame(
  x = c(1,2,3),
  y = c(12,10,3),
  n = c(75,76,73)
  )

par(mar = c(13,5,2,3))

plot(test$y ~ test$x,type="b", ann=F)

for (i in 1:nrow(test))

{
  X=grconvertX(i , from="user", to="ndc")
  grid.text(x=X, y =0.2, label=paste("GRID.text at\nuser.x=", i, "\n", "ndc.x=", (signif( X, 5))   ) ) 
  grid.lines(x=c(X, X), y = c(0.28, 0.33) )
}
#add some code to save as PDF ...
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

该代码基于我以前的一篇文章的解决方案:混合X和Y坐标系.您可以看到原始图中的x坐标是如何转换为ndc的.这种方法的优点是我可以使用Y的设备坐标.

我假设我可以轻松地在ggplot2(也可能在 …

r ggplot2 lattice

8
推荐指数
1
解决办法
1120
查看次数

如何在格子bwplot中更改面板标签和x轴子标签

我使用RStudio(MacOS)需要2周时间,所以如果我忽略了一个可以解决我问题的明显功能,请原谅我.
作为一个项目,我试图重现一个箱形图,其中4个图表示净效益,给定疾病类型 - "非严重"(0)或"严重"(1) - 作为x轴标签,以及给予治疗 - "谈话疗法"(0)或"药物疗法"(1) - 作为x轴子标签.

到目前为止,这是我的脚本:

tx <- c(0,0,0,0,1,1,1,1)
dztype <- c(1,0,1,0,0,0,1,1)
NBwtp1000 <- c(-5500,-4000,-5000,-1000,-5000,-5000,-2800,-2000)
require(lattice)
bwplot(NBwtp1000 ~ paste0("Tx ", tx) | paste0("Disease Severity ", dztype),
       xlab="Talk Therapy (Tx 0) or Drug Therapy (Tx 1)", 
       ylab="Net Benefit @ wtp 1000", horizontal=FALSE)
Run Code Online (Sandbox Code Playgroud)

如果你运行代码,你会看到盒子和胡须的情节:我几乎要感谢这个论坛上关于格子bwplot功能的一些信息性帖子.

但是,我对结果仍然很满意.我使用该paste0函数将字符串描述符添加到治疗组的X轴子标签(最初标记为"1,2",现在显示为"Tx 0,Tx 1"),但我理想地喜欢那些说"治疗"的子标签"和"药物治疗"分别.(我根本不知道如何取消现有的数字标签.)
同样,我希望面板标签在标签当前为0时显示"Not Severe",在标签当前为1时为"Severe".

r labels lattice boxplot

8
推荐指数
1
解决办法
1万
查看次数

热图或相关矩阵图

我试图用相关矩阵制作一个图,并用三种颜色来表示使用库晶格的相关系数.

library(lattice)

levelplot(cor)
Run Code Online (Sandbox Code Playgroud)

我得到以下情节:

相关矩阵的图

该图仅适用于我拥有的数据的子集.当我使用整个数据集(400X400)时,它变得不清楚,并且颜色没有正确显示并显示为点.对于大型矩阵,是否可以以平铺形式获得相同的内容?

我尝试使用pheatmap函数,但我不希望我的值被聚集,只是想要以tile形式清楚地表示高值和低值.

r lattice

8
推荐指数
2
解决办法
2万
查看次数

将数据框列提供给xyplot面板功能

我在一个数据框上使用xyplot,并希望为一个面板函数提供不是(x,y,...)参数的数据,而是数据框的一些附加列(例如下面的例子中的k):

library(lattice)

mydata <- data.frame(xxx = 1:20,
                     yyy = rbinom(20,20,.5),
                     uuu = gl(2,10),
                     k = rnorm(20))

xyplot( formula = yyy ~ xxx | uuu, data = mydata,
        panel = function(x,y,k, ...){
                n <- x * k
                panel.xyplot(n,y,...)
                })
Run Code Online (Sandbox Code Playgroud)

我知道这不起作用,因为R不会将此k列提供给面板功能.有一个简单的方法吗?

(我不是试图在我的实际面板函数中将x乘以k.我正在调用另一个需要k的函数...)

非常感谢!

plot r lattice

8
推荐指数
1
解决办法
1098
查看次数

如何在R中的xyplot中更改标签值的大小

xyplot在R中使用在一个图上绘制几行(按组):

xyplot(y~x,
       type=c('l'),
       scales=list(tck=c(1,0)),
       main=list(label="Total decrease", cex=2),
       xlab=list(label="Years", cex=1.5),
       ylab=list(label="Percentage", cex=1.5),
       groups= group,
       data=df,
       auto.key=list(columns=2, lines=TRUE, points=FALSE, cex=1.5))
Run Code Online (Sandbox Code Playgroud)

但是,我无法更改标签值的大小.我已经尝试更改参数cex.axis(在xlabylab选项中),但这不会改变沿x轴或y轴的值的大小.

有人可以帮忙吗?

马克,先谢谢你

r lattice

8
推荐指数
1
解决办法
9309
查看次数

R网格包:为图形添加图例

我正在使用格子包,我想为我的身材添加一个图例.auto.keylegend的文档非常混乱,无法找出添加图例的正确语法.这是我的代码:

xyplot(y ~ x, df, pch=19, col=rgb(0.2, 0.4, 0.8, 0.7), cex=2,
       scales=list(cex=1.7),
       xlab=list("x", cex=1.ales=list(cex=1.7),
       xlab=list("x", cex=1.7), ylab=list("y", cex=1.7),
       main=list("Linear Regression w. Polynomial Attributes", cex=1.6),
       auto.key=T,
       panel = function(x, y, ...) {
            panel.xyplot(x, y, ...)
            llines(x, predict(lm.xtend), col="purple", lwd=6, lty=3)
            llines(x, predict(ridge.lin), col="darkgreen", lwd=6, lty=2)
       })
Run Code Online (Sandbox Code Playgroud)

图表如下所示,所以我只想为这些线条添加一个图例. 在此输入图像描述

r legend lattice

8
推荐指数
1
解决办法
2万
查看次数

在地图中自定放置spplot图例

是否可以将spplot(spplot polygons)图例放在地图的左下角,就像这样?

在此输入图像描述

我能得到的最接近的是(我没有发布我的数据,我只是使用示例数据,所以在这种情况下,尝试将图例放在地图的左上角):

data(meuse.grid)
gridded(meuse.grid)=~x+y
spplot(meuse.grid[,'dist'],
    colorkey = list(space = "left", height = 0.5)
)
Run Code Online (Sandbox Code Playgroud)

但是图例位于页面中间,位于地图之外.不幸的是,colorkey论证不支持"bottomleft",或者x,y或者角落参数(参见参考资料?levelplot).我也尝试使用key.space参数,但它似乎只在绘图时起作用,SpatialPoints*但它似乎被忽略 SpatialPolygons*(或者像上面例子中的SpatialPixelsDataFrame).

gis r spatial lattice r-sp

8
推荐指数
2
解决办法
4707
查看次数

更改地层图的x轴限制(即多面板图)

如何在地层图中手动调整每个面板的x轴限制?

例如,这里Stratiplot来自analogue:

library(analogue)
data(V12.122)
Depths <- as.numeric(rownames(V12.122))

(plt <- Stratiplot(Depths ~ O.univ + G.ruber + G.tenel + G.pacR,
                   data = V12.122,  type = c("h","l","g","smooth")))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

例如,我怎样才能将G.ruber的xlim改为c(0.3,0.9)和G.pacR改为c(0,0.75)?

或者,另一种可能性,strat.plot来自rioja:

library(rioja)
library(vegan) ## decorana
data(RLGH)
# remove less abundant taxa
mx <- apply(RLGH$spec, 2, max)
spec <- RLGH$spec[, mx > 3]
depth <- RLGH$depths$Depth
#basic stratigraphic plot
strat.plot(spec, y.rev=TRUE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

例如,我怎样才能将TA004A的xlim更改为c(0,20)?

我想我需要提供一些东西来解决底层的格子/基础图代码,但我不知道如何开始使用它.

plot r lattice

8
推荐指数
1
解决办法
535
查看次数

标签 统计

lattice ×10

r ×10

plot ×3

bar-chart ×1

boxplot ×1

ggplot2 ×1

gis ×1

graphics ×1

labels ×1

legend ×1

r-sp ×1

spatial ×1