【问题标题】:ggplotly mouse values while using a log-transformed color scale使用对数转换色标时的 ggplotly 鼠标值
【发布时间】:2026-01-26 21:10:01
【问题描述】:

在下面的最小示例中,色标经过对数转换,将鼠标悬停在栅格上方时显示的z 值也经过对数转换。 这是非常不具信息性的,我需要用与比例图例相同的单位来表示它。

是否可以避免自动进行这种转换?

library(plotly)
library(reshape2)
library(RColorBrewer)

myPalette <- colorRampPalette(brewer.pal(11, "Spectral"))

p <- volcano %>%
  melt() %>% 
  ggplot(aes(Var1, Var2, fill = value)) + geom_tile() +
  scale_fill_gradientn(colours = rev(myPalette(100)), trans="log")

ggplotly(p)

【问题讨论】:

    标签: r ggplot2 plotly r-plotly


    【解决方案1】:

    解决方法是这样,我刚刚添加了text = paste("Value:", value) 部分(不受日志影响):

    p <- volcano %>%
      melt() %>% 
      ggplot(aes(Var1, Var2, fill = value, text = paste("Value:", value))) + geom_tile() +
      scale_fill_gradientn(colours = rev(myPalette(100)), trans="log")
    
    ggplotly(p, tooltip = c("Var1", "Var2", "text"))
    

    也可以tooltip 控制悬停时显示的内容。

    【讨论】:

    • 非常好!谢谢!