我制作了doubleYScale
剧情:
library(lattice)
library(latticeExtra)
# Some data
foo <- list(x = 1:100, y = cumsum(rnorm(100)))
obj1 <- xyplot(y~ x, data=foo,xlab=list(cex=1.2),
main="TOtalProduktion VS SummaSkulder/TotaltKapital i procent",
type = c("l","g"),col="black",
lty=1,key = simpleKey(col=c('black'),
text=c("Produktion"),cex=1.2,points=FALSE, lines=TRUE),
scales=list(x=list(rot=90,tick.number=25,
cex=1,axs="r")))
obj2 <- xyplot(y^2 ~ x,data= foo ,type = "o",col="black",
lty=9,key = simpleKey(col=c('black'),
text=c("Summa.skulder"),cex=1.2,lines=FALSE,points= TRUE))
doubleYScale(obj1, obj2, add.ylab2 = TRUE)
problem
是我无法更改y轴标签(y
和y^2
文字的文字大小,我希望将其设置为更大)。如果我只分别绘制obj1
或obj2
,但它不适用于doubleYScale
...
另一方面,我可以用:
更改y轴上的数字大小trellis.par.set(axis.text=list(cex=1))
有什么建议吗?我找不到办法:(
答案 0 :(得分:5)
以下是直接使用lattice
和latticeExtra
的另一种解决方案:
您可以在其中单独设置所有轴标签的大小:
library(lattice)
library(latticeExtra)
foo <- list(x = 1:100, y = cumsum(rnorm(100)))
obj1 <- xyplot(y~ x, data=foo,
xlab=list("Thing", fontsize = 22),
ylab = list("Something", fontsize = 32),
ylab.right = list("Anything", fontsize = 16),
par.settings = simpleTheme(col = 1),
type = c("l","g"),
lty=1,
scales=list(x=list(rot=90,tick.number=25,
cex=1,axs="r")))
obj2 <- xyplot(y^2 ~ x,data= foo ,type = "o",col="black",
lty=9)
doubleYScale(obj1, obj2)
答案 1 :(得分:4)
library(grid)
## the text size of the 2 y-axic labels
grid.edit(gPath='GRID.text',grep=T,global=T,gp =gpar(cex=3))
如果要设置不同的轴尺寸
grobs <- sapply(grid.get(gPath='GRID.text',grep=T,global=T),'[')['name',]
grid.edit(gPath=grobs[[1]],gp =gpar(cex=2))
grid.edit(gPath=grobs[[2]],gp =gpar(cex=1.5))
答案 2 :(得分:3)
这并没有直接回答你的问题,但是在一个轴上混合两个不同大小的图可能不是最好的方法,因为它可能会产生误导。也许使用ggplot
的分面情节可以做得更好或更好?下面的所有元素都很容易调整。
library(ggplot2)
library(reshape)
set.seed(123)
foo <- list(x = 1:100, y = cumsum(rnorm(100)))
foo <- as.data.frame(foo)
foo$z <- foo$y^2
mymelt <- melt(foo, id.var = 'x')
mymelt$label <- ifelse(mymelt$variable == 'y', "Produktion", "Summa.skulder")
mymelt$line.colour <- ifelse(mymelt$variable == 'y', "red", "blue") # specify colours here
ggplot(data = mymelt, aes(x = x, y = value)) +
geom_line(aes(colour = mymelt$line.colour)) +
facet_wrap(~ label, ncol = 1, scales = "free_y") +
scale_colour_manual(values = unique(mymelt$line.colour)) +
ggtitle("TOtalProduktion VS SummaSkulder/TotaltKapital i procent") +
theme(strip.text.x = element_text(size = 12)) +
theme(axis.text.x = element_text(size = 9)) +
theme(axis.text.y = element_text(size = 9)) +
theme(axis.title.x = element_text(size = 15)) +
theme(axis.title.y = element_text(size = 15)) +
theme(axis.title.x = element_blank()) + # comment out this line if you want an x axis title
theme(axis.title.y = element_blank()) + # comment out this line if you want a y axis title
theme(legend.position = "none")