ggplot:添加带有轴刻度的绘图轮廓

ggplot: Adding a plot outline with the axis ticks

我正在尝试创建 x 轴也出现在图上方以及 y 轴出现在图右侧的图。两者都应包含与法线轴相同的刻度,但不是轴文本。这应该会产生一个“框”,在绘图周围带有有用的刻度线。我还希望在没有标签的主要刻度线(已标记)之间有较小的刻度线。这是我制作的图:

我也用粉红色画了我想在R中实现的东西:

]3

我对这个情节的代码:

p <- p + xlab("") + ylab("") + theme(legend.position = "none") + theme(axis.ticks.length = unit(-0.25, "cm"), axis.text.x = element_text(size = 30, hjust=1)) + theme(axis.text.y = element_text(size=35, hjust = 1), strip.text = element_text(size=35), axis.title.y = element_text(size = 40), legend.text = element_text(size=30), axis.title.x = element_text(size=40), legend.title = element_text(size=45)) 
p <- p + theme(text = element_text(family = "Helvetica")) + scale_x_continuous(limits=c(-0.5, 25), breaks = c(0, 2, 4, 6, 8, 24))  + theme(legend.background = element_rect(color = "black", linetype = "solid")) + scale_colour_manual(values = cbpallette)
p <- p + theme(legend.key.size = unit(2.5, "cm")) + theme(axis.text.x = element_text(margin = margin(t = .5, unit = "cm")), axis.text.y = element_text(margin = margin(r = .5, unit = "cm")))
p

*** 编辑 *** 这是更新的代码,使用 Stefans 建议。图是这样的,刻度在那里,轴不见了:

p <- p + xlab("") + ylab("") + theme(legend.position = "none") + theme(axis.ticks.length = unit(-0.25, "cm"), axis.text.x = element_text(size = 30, hjust=1)) + theme(axis.text.y = element_text(size=35, hjust = 1, angle=45), strip.text = element_text(size=35), axis.title.y = element_text(size = 40), legend.text = element_text(size=30), axis.title.x = element_text(size=40)) 
p <- p + theme(text = element_text(family = "Helvetica"))  + scale_colour_manual(values = cbpallette)
p <- p + theme(axis.text.x = element_text(margin = margin(t = .5, unit = "cm")), axis.text.y = element_text(margin = margin(r = .5, unit = "cm"))) 
p

您可以使用参数 sec.axis = dup_axis() 为两个尺度复制坐标轴,如下所示:

library(ggplot2)

ggplot(mtcars, aes(hp, mpg)) +
  geom_point() +
  scale_x_continuous(sec.axis = dup_axis(name = NULL, labels = NULL)) +
  scale_y_continuous(sec.axis = dup_axis(name = NULL, labels = NULL))