我有一个ggplot2主题,我喜欢分面图,但是想要添加这些线程中描述的轴刻度线,但这次是针对多面板的情况:
例如,我包含以下代码:
## load libraries
library(ggplot2)
library(grid)
library(reshape2)
library(dplyr)
## ggplot settings
theme_update(strip.text=element_text(size=14),
strip.text.x=element_text(vjust=1),
strip.text.y=element_text(vjust=0,angle=90),
strip.background=element_rect(color=NA,fill=NA,
linetype=0),
axis.text=element_text(size=12),
axis.text.y=element_text(angle=90),
axis.ticks.length = unit(-0.3, "lines"),
axis.ticks.margin = unit(0.5, "lines"),
panel.border=element_rect(color=1,fill=NA),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
## transform the iris dataset
iris.long <- melt(add_rownames(iris,"Sample"),id.vars=c("Sample","Species"))
iris.long$Component <- sub("(.+)\\.(.+)","\\1",iris.long$variable)
iris.long$Dimension <- sub("(.+)\\.(.+)","\\2",iris.long$variable)
iris.wide <- dcast(iris.long,Sample+Species+Component~Dimension)
## make the plot
ggplot(iris.wide)+
geom_point(aes(Length,Width))+
facet_grid(Species~Component)
给出了下图:
顶部和右侧的刻度(以及没有刻度标签的面板的底部和左侧)将是一种改进。我不熟悉ggplot / grid图形内部的内部工作原理 - 但这是否能够以公式化的方式实现? ggplot2::annotation_logticks()
似乎已经实现了这样的功能,但我无法将其用于线性比例图。