当我使用barchart()
,我得到这样的事(我知道的图像不是条形图,但我auto.key
产生相同的图例):lattice auto.key - 如何调整线条和点?
我想补点,并让他们放大或将它们设置为相应颜色的矩形。
当我使用densityplot()
,我得到这样的:
我想就行“厚”如果可能的话。
当我使用barchart()
,我得到这样的事(我知道的图像不是条形图,但我auto.key
产生相同的图例):lattice auto.key - 如何调整线条和点?
我想补点,并让他们放大或将它们设置为相应颜色的矩形。
当我使用densityplot()
,我得到这样的:
我想就行“厚”如果可能的话。
daroczig的回答是当我面对这种情况我通常做的。但是,一般来说,我更喜欢使用lattice
默认颜色,而不是指定自己的颜色。
你可以通过这样做:
lattice.theme <- trellis.par.get()
col <- lattice.theme$superpose.symbol$col
pl <- xyplot(X ~ Y, groups=Z, data=dframe, pch=1:nlevels(dframe$Z),
type='o', key=list(text=list(levels(dframe$Z)), space='top',
points=list(pch=1:nlevels(dframe$Z), col=col),
lines=list(col=col),
columns=nlevels(dframe$Z)))
参见?xyplot
。一些细节:
有关更改颜色的第一个问题,请使用col
参数,例如,
barplot(table(mtcars$am, mtcars$gear), col = c("green", "yellow"))
但是,如果你要处理的散点图,而不是barplot(这里混淆)与修饰符号,那么auto.key
是不是选项遗憾的是,但像这样的没有问题的工作:
xyplot(mtcars$hp ~ mtcars$wt, groups = mtcars$gear,
key = list(text = list(as.character(unique(mtcars$gear))),
points = list(pch = 10:12, col = 12:14)), pch = 10:12, col = 12:14)
关于第二个问题使用lwd
:
densityplot(mtcars$hp, lwd = 3)
thx again!我调整了一些东西,但基本上这是我一直在寻找!亲切的问候 – Druss2k
我只是花了很多时间很大一部分在本质上同样的问题。出于某种原因,@ daroczig风格的方法不适用于在密度图中更改线型(包括键)。
在任何情况下,我认为“正确”的方法是使用trellis.par.set
与auto.key
一起,像这样:
# Maybe we'll want this later
old.pars <- trellis.par.get()
trellis.par.set(superpose.symbol=list(pch = 10:12, col = 12:14))
xyplot(hp ~ wt, data=mtcars, groups = gear, auto.key=TRUE)
# Optionally put things back how they were
trellis.par.set(old.pars)
实际上,有打字少这种方式(特别是如果你不指望我的保存和恢复原始的网格分析)以及更少的冗余(允许DRY编码)。此外,对于我的生活,我无法弄清楚如何使用key
轻松制作多列,但是您可以添加columns
作为auto.key
列表的其中一个元素。
此外,请确保你正在改变正确的元素!例如,如果您更改了plot.symbol
(这听起来确实如此),它什么都不会做。一般来说,对于基于xyplot的东西,我相信superpose.*
是实际修改符号,行等的正确元素。
thx,这是非常有益的! – Druss2k