如何仅添加一个刻度就添加自定义标签?

时间:2018-09-17 14:41:56

标签: r ggplot2

我正在制作一个图表,其中X轴为'%'。

ggplot(
  data = cars,
  aes(
    x = speed,
    y = dist
  )
) + 
  geom_point() +
  scale_x_continuous(
    labels = function(x) paste0(x,'%'),
  )

这将产生一个图表。 enter image description here

我只希望X轴上的第一个刻度或最后一个刻度具有'%'。我该怎么做?

2 个答案:

答案 0 :(得分:3)

只需将功能更改为

labels = function(x) c(paste0(x[1] * 100, '%'), x[-1])

(请注意,您可能需要调整休息和/或限制,因为在您发布的更新示例中,未绘制x的第一个元素,因此在这种情况下,您需要执行c(paste0(x[1:2] * 100, '%'), x[-(1:2)])

答案 1 :(得分:1)

格式化标签中的函数以仅对第一个刻度标签获得'%'

labels = function(x) c(paste0(x[1],'%'),x[-(1)]

仅对于最后一个刻度标签获得“%”

labels = function(x) c(x[1:length(x)-1] , paste0(rev(x)[1],'%'))