一些想法:
- 使用用于Y轴的标签,例如更小的字体大小
scale=list(y=list(cex=.6))
。另一种方法是保留统一的字体大小,但是在多个页面上分开输出(可以用layout=
来控制),或者更好地显示来自同一数据集的所有数据(从A到F,因此每个算法有4个点)或采用group=
选项的样本大小(10到100,因此每个算法有6个点)。我个人会为此创建两个因素,sample.size
和dataset.type
。
显示您的因子Dataset
,以便您感兴趣的数据集出现在layout
将放置它们的位置,或(更好)使用index.cond
为您的24个面板指定特定排列。例如,
dfrm <- data.frame(algo=gl(11, 1, 11*24, labels=paste("algo", 1:11, sep="")),
type=gl(24, 11, 11*24, labels=paste("type", 1:24, sep="")),
roc=runif(11*24))
p <- dotplot(algo ~ roc | type, dfrm, layout=c(4,6), scale=list(y=list(cex=.4)))
将安排按顺序面板,从底部左(在右上面板左下面板,type24
type1
)到右上,而
update(p, index.cond=list(24:1))
将安排在反向板订购。只需指定一个list
与预期的面板位置。
这里是我心目中有1点的例子和使用两个方面因素,而不是一个。让我们产生另一人为数据集:
dfrm <- data.frame(algo=gl(11, 1, 11*24, labels=paste("algo", 1:11, sep="")),
dataset=gl(6, 11, 11*24, labels=LETTERS[1:6]),
ssize=gl(4, 11*6, 11*24, labels=c(10,25,50,100)),
roc=runif(11*24))
xtabs(~ dataset + ssize, dfrm) # to check allocation of factor levels
dotplot(algo ~ roc | dataset, data=dfrm, group=ssize, type="l",
auto.key=list(space="top", column=4, cex=.8, title="Sample size",
cex.title=1, lines=TRUE, points=FALSE))
来源
2012-03-14 11:44:05
chl
非常感谢CHL!我非常感谢你的帮助。编辑结束后,我还没有尝试过您的评论,但您的原始建议像魅力一样起作用。尽管y轴上的标签非常小。我必须找出一种方法使它们更具可读性。我在原始文章中没有说明的一件事是,数据集名称中的字母后面的数字不表示大小,而是数据中的信号量。 A100是全部信号且无噪音,但A10的噪音为90%,信号为10%。数据集大小相同。许多人再次感谢。 – user765195 2012-03-15 01:44:34