R ggplot2:设置其他特定轴刻度线

时间:2018-06-25 08:38:48

标签: r ggplot2

我有一个ggplot:

ggplot()+geom_line(data = data.frame(y = c(1,2,3), x=c(1,2,3)), aes(y=y,x=x))

enter image description here 我想保留默认的轴中断和标签(在我的程序中,我不知道先验图的限制。)

在x = 1.5时,我想在x轴上添加带有标签“ hi”的其他刻度线。

我了解scale_x_continuous(),但是我不知道如何访问“由转换对象计算的默认中断”。

1 个答案:

答案 0 :(得分:5)

ggplot2使用基函数pretty(间接通过scales::pretty_breaks)用于未转换的轴。利用此优势:

df <- data.frame(y = c(1,2,3), x=c(1,2,3))

ggplot(df, aes(x, y)) + 
  geom_line() +
  scale_x_continuous(breaks = c(pretty(df$x), 1.5), labels = c(pretty(df$x), 'hi'))

在1.5时,它当然会超绘(您写“ additional”而不是“ replace”,所以我不确定您追求的是什么)。如果您不想这样做,则需要执行以下操作:

pretty_br <- pretty(df$x)[abs(pretty(df$x) - 1.5) > 0.25]
ggplot(df, aes(x, y)) + 
  geom_line() +
  scale_x_continuous(breaks = c(pretty_br, 1.5), labels = c(pretty_br, 'hi'))

enter image description here