编辑渐变图例以指示预定义的基准值

Edit a gradient legend to indicate a pre-defined benchmark value

快速浏览下图...

我想在图例中的渐变条上添加一个指示器,该指示器对应于预定义的基准百分比(17%,这是蓝色带指示的范围)。它应该是一个简单的水平带,带有某种标注表明这是基准。

此外,更重要的是,我希望这些点及其相应的标签永远不会重叠,而是聚集在一起并且全部可见,也许有一些迹象表明它们是间隔开的而不是 100% 准确?

想法?

# TEST DATA
srvc_data <- data.frame(
  Key = 1:20,
  X = sample(40:80, 20, replace = T),
  Y = sample(30:65, 20, replace = T)
)
srvc_data$Z <- with(srvc_data,abs(X-Y))


t1<-theme(                              
  plot.background = element_blank(), 
  panel.grid.major = element_blank(), 
  panel.grid.minor = element_blank(), 
  panel.border = element_blank(), 
  panel.background = element_blank(),
  axis.line = element_line(size=.4)
)

main_plot <- ggplot(srvc_data, aes(x = X, y = Y),xlim=c(0,100), ylim=c(0,100)) +
  t1 +
  theme_bw() +
  labs(x="X", y="Y") +
  scale_x_continuous(limits = c(0, 100)) +
  scale_y_continuous(limits = c(0, 100)) +
  geom_abline(intercept = 0, slope = 1, colour="blue", size=34, alpha=.1)+
  geom_abline(intercept = 0, slope = 1, colour="black", size=.2, alpha=.5,linetype="dashed")+
  geom_point(size = 7, aes(color = Z), alpha=.7) + 
  scale_color_gradient("Gap %\n",low="green", high="red")+
  coord_fixed()+
  geom_text(aes(label=Key,size=6),show_guide = FALSE)
main_plot

制作这个情节

提前致谢。

你在问两个不相关的问题。我会回答标题中的那个:

添加休息时间很容易,只需在 scale_color_gradient 中指定即可。

my_breaks = c(10, 17, 34)

...
scale_color_gradient("Gap %\n",low="green", high="red",
     breaks = my_breaks, labels = paste0(my_breaks, "%")) +
...

如果您的数据是真实的百分比(介于 0 和 1 之间),那么 labels = scales::percent 会为您进行格式化。