我想(有建议这样做)创建具有不同外观的boxplot并为其添加标签.预期(未完成)输出将如下所示(每个框具有多种标签)和样本大小.

boxplot(len~supp*dose, data=ToothGrowth, notch=TRUE,
col=(c("gold","darkgreen")),
main="Tooth Growth", xlab="Suppliment and Dose", names = supp )
# some unsuccessful trials
# to add names
boxplot(len~supp*dose, data=ToothGrowth, notch=TRUE,
col=(c("gold","darkgreen")),
main="Tooth Growth", xlab="Suppliment and Dose", names = supp*dose)
# to remove the plot outline
boxplot(len~supp*dose, data=ToothGrowth, notch=TRUE,
col=(c("gold","darkgreen")),
main="Tooth Growth", xlab="Suppliment and Dose", bty="n")
Run Code Online (Sandbox Code Playgroud) 我试图用相关矩阵制作一个图,并用三种颜色来表示使用库晶格的相关系数.
library(lattice)
levelplot(cor)
Run Code Online (Sandbox Code Playgroud)
我得到以下情节:

该图仅适用于我拥有的数据的子集.当我使用整个数据集(400X400)时,它变得不清楚,并且颜色没有正确显示并显示为点.对于大型矩阵,是否可以以平铺形式获得相同的内容?
我尝试使用pheatmap函数,但我不希望我的值被聚集,只是想要以tile形式清楚地表示高值和低值.
如何在地层图中手动调整每个面板的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)?
我想我需要提供一些东西来解决底层的格子/基础图代码,但我不知道如何开始使用它.
我有以下类型的数据(虽然数据点的数量非常大)
# property data
name <- c("A", "B", "C", "D")
diameter <- c(4.3, 8.3,1.2, 3.3)
X <- c( 1, 2, 3, 4)
Y <- c(1, 3, 3, 4)
colr <- c(10, 20, 34, 12)
propdata <- data.frame (name, diameter, X, Y, colr)
# interaction data
name1 <- c("A", "A", "A", "B", "B")
name2 <- c("B", "C", "D", "C", "D")
score <- c(1.1, 2.2, 5.4, 3.1, 2.0)
relation <- data.frame (name1, name2, score)
Run Code Online (Sandbox Code Playgroud)
我想创建一个类似于以下的图形,以便它具有以下属性.
(
1) diameter of circles is governed …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何确定分组条的中点值,即每个条的中心的实际X位置.这是很容易在基础R完成barplot功能,但是我希望能够做到这一点的格子的barchart.我的目标是在相应的栏顶部显示文本列的值.
只要我不使用子组,下面的代码允许我将文本放在条形图的顶部.我试过在互联网上搜索解决方案,但似乎没有任何效果.从图中可以看出,中点仅针对整个组的中心确定.
谢谢!
library(lattice)
test= data.frame(
group=c("WK 1", "WK 1", "WK 1", "WK 2", "WK 2", "WK 2", "WK 3", "WK 3", "WK 3"),
subgroup=c(1,2,3,1,2,3,1,2,3) ,
percent=c(60,50,80,55,56,65,77,65,86),
text=c("n=33", "n=37","n=39","n=25","n=27","n=22","n=13","n=16","n=11")
)
barchart(data=test,
percent~group,
groups=subgroup,
panel = function(x,y,...){
panel.barchart(x, y, ...)
panel.text( x=unique(test$group),
y=test$percent,
label=unique(test$text)
)
}
)
Run Code Online (Sandbox Code Playgroud)

基于这个伟大的问题:如何绘制通过某些点的平滑曲线
如何在格子中做到这一点?
plot(rnorm(120), rnorm(120), col="darkblue", pch=16, xlim=c(-3,3), ylim=c(-4,4))
points(rnorm(120,-1,1), rnorm(120,2,1), col="darkred", pch=16)
points(c(-1,-1.5,-3), c(4,2,0), pch=3, cex=3)
xspline(c(-1,-1.5,-3), c(4,2,0), shape = -1)
Run Code Online (Sandbox Code Playgroud)

这是类似的数据,格式更合适的lattice情节:
dat <- data.frame(x=c(rnorm(120), rnorm(120,-1,1)),
y=c(rnorm(120), rnorm(120,2,1)),
l=factor(rep(c('B','R'),each=120))
)
spl <- data.frame(x=c(-1,-1.5,-3),
y=c(4,2,0)
)
Run Code Online (Sandbox Code Playgroud)
以下是链接问题给出的内容,翻译为lattice:
xyplot(y ~ x,
data=dat,
groups=l,
col=c("darkblue", "darkred"),
pch=16,
panel = function(x, y, ...) {
panel.xyplot(x=spl$x, y=spl$y, pch=3, cex=3)
## panel.spline(x=spl$x, y=spl$y) ## Gives an error, need at least four 'x' values
panel.superpose(x, y, ...,
panel.groups = function(x, y, ...) …Run Code Online (Sandbox Code Playgroud) 前段时间我问了一个关于如何删除条形图中未使用因子的问题,我得到了一个有用的解决方案,感谢@Aaron.现在,我面临着一个非常类似的问题,但我过去使用的解决方案对于这种情况并不适用.
这是重现我正在使用的数据框的代码:
set.seed(17)
df <- data.frame(BENCH = sprintf('bench-%s', sort(rep(letters[1:8], 4))),
CLASS.CFG = sprintf('class-%s',
c(rep('C', 4), rep('A', 4), rep('B', 8),
rep('C', 8), rep('A', 4), rep('D', 4))),
EXEC.CFG = rep(c('st', 'st', 'dyn', 'dyn'), 8),
METRIC = rep(c('ipc', 'pwr'), 16),
VALUE = runif(32))
Run Code Online (Sandbox Code Playgroud)
绘制此数据框的简单命令是:
library(lattice)
barchart(VALUE ~ BENCH | EXEC.CFG + CLASS.CFG, df, groups = METRIC,
scales = list(x = list(rot = 45, relation = 'free')),
auto.key = list(columns = 2))
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在为每个BENCH绘制VALUE约束到EXEC.CFG和CLASS.CFG的每个可能组合(这就是我对嵌套因子的意思),并使用METRIC创建组.
这是我获得的结果:

即使我对X轴使用"自由"刻度,在绘图中一些条之间也存在一些(不必要的)间隙(例如,在bench-b和之间bench-g).
我尝试以下列方式应用我之前提出的问题的解决方案:
pl1 <- …Run Code Online (Sandbox Code Playgroud) 我是新手R用户,我正在尝试使用HH包中的likert函数创建一个绘图.我的问题似乎来自重复类别标签.更容易显示问题:
library(HH)
responses <- data.frame( Subtable= c(rep('Var1',5),rep('Var2',4),rep('Var3',3)),
Question=c('very low','low','average','high','very high', '<12', '12-14', '15+',
'missing', '<25','25+','missing'), Res1=as.numeric(c(0.05, 0.19, 0.38, 0.24, .07,
0.09, 0.73, 0.17, 0.02, 0.78, 0.20, 0.02)), Res2=as.numeric(c(0.19, 0.04, 0.39,
0.22, 0.06, 0.09, 0.50, 0.16, 0.02, 0.75, 0.46, 0.20)))
likert(Question ~ . | Subtable, responses,
scales=list(y=list(relation="free")), layout=c(1,3),
positive.order=TRUE,
between=list(y=0),
strip=FALSE, strip.left=strip.custom(bg="gray97"),
par.strip.text=list(cex=.6, lines=3),
main="Description of Sample",rightAxis=FALSE,
ylab=NULL, xlab='Percent')
Run Code Online (Sandbox Code Playgroud)
不幸的是,它会创建一些并不存在的奇怪空间,如下图所示:

这似乎来自重复的"缺失"类别.我的实际数据有几个重复(例如,'不','其他'),每当它们被包括在内时我得到这些额外的空格.如果我运行相同的代码但删除重复的类别,那么它运行正常.在这种情况下,这意味着将上面代码中的"响应"更改为responses[! responses$Question %in% 'missing',].
有人可以告诉我如何使用所有类别创建图表,而无需获得"额外"空格?感谢您的帮助和耐心.
-Z
R 3.0.2
HH 3.0-3
lattice 0.20-24
latticeExtra 0.6-26
Run Code Online (Sandbox Code Playgroud) 包HH似乎提供了一种可视化ANCOVA的简便方法
library(HH)
data(hotdog)
ancova(Sodium ~ Calories * Type, data=hotdog)
Run Code Online (Sandbox Code Playgroud)

有喜欢的东西来combinate这样一个舒适的方式panel.ablineq从latticeExtra?(http://latticeextra.r-forge.r-project.org#panel.ablineq)获取具体功能(斜率,截距)?
需要什么咒语才能实现重叠,lattice::histogram并具有共同的断点(跨组,但可能因面板而异)?
例如,假设我希望将每个面板的数据(组合的组)的总范围分成 30 个箱。
library(lattice)
set.seed(1)
d <- data.frame(v1=rep(c('A', 'B'), each=1000),
v2=rep(c(0.5, 1), each=2000),
mean=rep(c(0, 10, 2, 12), each=1000))
d$x <- rnorm(nrow(d), d$mean, d$v2)
Run Code Online (Sandbox Code Playgroud)
nint=30?p1 <- histogram(~x|v1, d, groups=v2, nint=30,
scales=list(relation='free'), type='percent',
panel = function(...) {
panel.superpose(..., panel.groups=panel.histogram,
col=c('red', 'blue'), alpha=0.3)
})
p1
Run Code Online (Sandbox Code Playgroud)
上面,组之间的 bin 是一致的,但是 (1) x 轴限制在面板之间共享(当 x 轴范围在面板间变化很大时有问题 - 我真的希望为每个面板单独计算 30 个 bin), (2) y 轴在使用时狭窄type='percent'(应该进一步延伸)。
breaks=30?p2 <- histogram(~x|v1, d, groups=v2, breaks=30,
scales=list(relation='free'), type='percent',
panel = …Run Code Online (Sandbox Code Playgroud)