标签: lattice

如何在格子图中按因子绘制两条线?

限定:

df <- data.frame(
        line1 = rep(seq(1,5,by=1),2), 
        line2 = rep(seq(2,6,by=1),2),
        index = rep(seq(1,5,by=1),2),
        factor=rep(c("a","b"),each=5))
Run Code Online (Sandbox Code Playgroud)

其中line1line2是两个变量,比如身高和体重.

这是我想要的每个面板的简单样式(我还想更改点标记的大小,但不使用如何):

plot(df$line1[df$factor=="a"], type = "o", ylim=c(0,6))
lines(df$line2[df$factor=="a"], type = "o", lty=2, pch=0)
Run Code Online (Sandbox Code Playgroud)

当我尝试这个:

library(lattice)
xyplot(c(line1,line2)~index|factor,data=df,type="o")
Run Code Online (Sandbox Code Playgroud)

该程序将所有点视为属于一行.

此外,我不知道如何提供绘图样式的参数来获得所需的结果.

PS1.令人惊讶的是,我已经用Google搜索并发现了许多散点图(线性拟合,密度等)和格子图的直方图示例,但这不是我想要做的简单事情之一.

PS2.我想标记这个问题,trellis但没有声誉点来创建标记.有志愿者吗?

r ggplot2 lattice trellis

3
推荐指数
1
解决办法
1871
查看次数

在格子条形图中向面板添加文本

我尝试在带有多个面板的格子条形图中为条形添加标签.我最终得到的标签太多了(每个标签都在每个面板中).

这是我的代码:

library(lattice)
data(iris)

barchart(seq(1,50) ~ Petal.Width + Petal.Length | Species, data = iris, stack = TRUE,
         panel=function(x, y, ...) {
               panel.barchart(x, y, ...);
               ltext(x=iris$Petal.Width/2, y=y, labels=iris$Petal.Width, cex = 0.5);
               ltext(x=iris$Petal.Width + iris$Petal.Length/2, y=y, labels=iris$Petal.Width, cex = 0.5);
         }
)
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

奖金的问题:
除了如预期它不工作,我想我的代码是不是太有效率(特别是seq(1,50)Petal.Width + Petal.Length).有没有更好的办法?

先感谢您!!!

r panel labels bar-chart lattice

3
推荐指数
1
解决办法
2899
查看次数

用格子绘制回归线

我在这里遇到了一些麻烦,请帮助我.我有这些数据

set.seed(4)
mydata <- data.frame(var = rnorm(100),
                     temp = rnorm(100),
                     subj = as.factor(rep(c(1:10),5)),
                     trt = rep(c("A","B"), 50))
Run Code Online (Sandbox Code Playgroud)

和这个适合他们的模型

lm  <- lm(var ~ temp * subj, data = mydata)
Run Code Online (Sandbox Code Playgroud)

我想用格子绘制结果并拟合回归线,用我的模型预测,通过它们.为此,我正在使用这种方法,概述了D. Sarkar的"电力使用的格子技巧"

temp_rng <- range(mydata$temp, finite = TRUE)

grid <- expand.grid(temp = do.breaks(temp_rng, 30),
                    subj = unique(mydata$subj),
                    trt = unique(mydata$trt))

model <- cbind(grid, var = predict(lm, newdata = grid))

orig <- mydata[c("var","temp","subj","trt")]

combined <- make.groups(original = orig, model = model)


xyplot(var ~ temp | subj, 
       data = combined,
       groups = …
Run Code Online (Sandbox Code Playgroud)

r lattice

3
推荐指数
1
解决办法
8054
查看次数

控制点阵密度图中的图符号的alpha值

我正在尝试使用网格库的densityplot功能来显示一些数据.我的数据集非常杂乱,所以我想减少底部绘制的符号的alpha值(这样可以在过度绘图的情况下获得更清晰的视图).但是,我似乎无法改变那些符号的alpha值而不会使实际密度曲线同样不透明.我使用的是图形的par.settings选择和设定不同的值superpose.linesuperpose.symbol(和工程变更线的种类及符号,但由于某种原因未阿尔法值).我用虹膜数据集做了一个小例子来说明我的问题/当前的方法.如果有人有任何建议我会非常感激.

library(lattice) 
data(iris) 

graph.settings <- list(superpose.line = list(lty = 1:3, lwd = 2, alpha = 1),
                       superpose.symbol = list(pch = 1:3, alpha = 0.3)) 
densityplot( ~ Sepal.Length, data = iris, groups = Species, 
            auto.key = list(columns = 3), aspect = 1, 
            main = "Density Plot of Sepal Lengths", xlab = "Length (mm)", 
            par.settings = graph.settings)
Run Code Online (Sandbox Code Playgroud)

r lattice

3
推荐指数
1
解决办法
907
查看次数

如何在格子图中绘制刻度线

如何在格子图的内部而不是外部绘制刻度线。“ tcl = 0.5”似乎可以正常绘制;但是不适用于我的点阵图。

我想在莱迪思中复制的示例:

我想在莱迪思中复制的示例

谢谢!

r lattice

3
推荐指数
1
解决办法
2104
查看次数

模型的3d图(3d散点图+模型表面+连接点到表面)

这是这个问题三维版本.

请考虑以下数据:

Income2<-structure(list(X = 1:30, Education = c(21.5862068965517, 18.2758620689655, 
12.0689655172414, 17.0344827586207, 19.9310344827586, 18.2758620689655, 
19.9310344827586, 21.1724137931034, 20.3448275862069, 10, 13.7241379310345, 
18.6896551724138, 11.6551724137931, 16.6206896551724, 10, 20.3448275862069, 
14.1379310344828, 16.6206896551724, 16.6206896551724, 20.3448275862069, 
18.2758620689655, 14.551724137931, 17.448275862069, 10.4137931034483, 
21.5862068965517, 11.2413793103448, 19.9310344827586, 11.6551724137931, 
12.0689655172414, 17.0344827586207), Seniority = c(113.103448275862, 
119.310344827586, 100.689655172414, 187.586206896552, 20, 26.2068965517241, 
150.344827586207, 82.0689655172414, 88.2758620689655, 113.103448275862, 
51.0344827586207, 144.137931034483, 20, 94.4827586206897, 187.586206896552, 
94.4827586206897, 20, 44.8275862068966, 175.172413793103, 187.586206896552, 
100.689655172414, 137.931034482759, 94.4827586206897, 32.4137931034483, 
20, 44.8275862068966, 168.965517241379, 57.2413793103448, 32.4137931034483, 
106.896551724138), Income = c(99.9171726114381, 92.579134855529, 
34.6787271520874, 78.7028062353695, 68.0099216471551, 71.5044853814318, …
Run Code Online (Sandbox Code Playgroud)

3d plot r lattice rgl

3
推荐指数
1
解决办法
4826
查看次数

绘制格子xyplot中每组面板数据的第一个点

我正在尝试使用组和面板创建线图,这些组和面板将符号叠加在每个组的第一个值上.此尝试仅绘制第一组的第一个点,而不对其他两个组执行任何操作.

library(lattice)
foo <- data.frame(x=-100:100, y=sin(c(-100:100)*pi/4))
xyplot( y~x | y>0,  foo, groups=cut(x,3),
        panel = function(x, y, subscripts, ...) {
          panel.xyplot(x, y, subscripts=subscripts, type='l', ...)
          # almost but not quite:
          panel.superpose(x[1], y[1], subscripts=subscripts, cex=c(1,0), ...) 
        } )
Run Code Online (Sandbox Code Playgroud)

可以理解一般解决方案,以允许绘制每个组和面板内的特定点(例如,第一,中间和端点).

在此输入图像描述

r panel lattice

3
推荐指数
1
解决办法
514
查看次数

将所有轴标签放置在R格子xyplot中的左侧和底部

我想更改默认的xyplot设置,其中轴标签按面板交替显示。

xyplot(yield~N | P+K, data=npk)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我意识到这是有意避免在相邻面板上重叠极端轴的方法,但是对于如上所示的分类x轴标签,这是不必要的,对于发布来说看起来很奇怪。

有没有一种方法可以将所有轴标签放在如下所示的同一侧(我在图形程序中编辑过)?

在此处输入图片说明

r lattice

3
推荐指数
1
解决办法
2162
查看次数

当最后一行的面板数少于列数时的xyplot底轴

考虑一个格子xyplotrelation='fixed'alternating=FALSEas.table=TRUE

如果面板的最后一行不完整(即,面板数少于布局的列数),则不会绘制x轴。例如,下图中的面板4没有x轴刻度/标签。

library(lattice)
d <- data.frame(x=runif(100), y=runif(100), grp=gl(5, 20))
xyplot(y~x|grp, d, as.table=TRUE, scales=list(alternating=FALSE, tck=c(1, 0)))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如何添加该轴?

理想情况下,我只希望轴在底部和左侧,而面板的不完整行在底部(与使用时不同as.table=FALSE,后者在顶部绘制不完整的行)。对于上面的示例,我希望将轴绘制在面板4的底部边框上,而不是与面板5的x轴对齐。

我知道可以通过例如基本图形方法轻松解决。我对晶格解决方案特别感兴趣。

plot r lattice

3
推荐指数
1
解决办法
323
查看次数

如何删除R中的levelplot刻度线边框?

levelplot函数使用方框的所有侧面绘制带有刻度线的热图。我想在x和y轴上保留刻度线,但删除顶部和右侧的刻度线。

如何删除框周围的右边框和顶部边框?

#fake data
data(mtcars)
cars.matrix <- as.matrix(mtcars[c(2:8)])
cars.corr <- cor(cars.matrix)

library('lattice')
levelplot(cars.corr, xlab="car stuff",ylab="Car Stuff", main="car stuff")
Run Code Online (Sandbox Code Playgroud)

汽车水平图图像

r border lattice levelplot

3
推荐指数
1
解决办法
2662
查看次数

标签 统计

lattice ×10

r ×10

panel ×2

plot ×2

3d ×1

bar-chart ×1

border ×1

ggplot2 ×1

labels ×1

levelplot ×1

rgl ×1

trellis ×1