用ggplot2绘制热图; logscale颜色和修改颜色图例

use*_*019 2 r legend heatmap ggplot2

我正在尝试创建一个热图ggplot2(你看到下面的代码)现在有两件事我想改变:

  1. 我绘制pValues(希望非常小),所以我想绘制颜色logscale.我尝试了trans ="log"的不同变体,但都没有奏效
  2. 我想在图例中显示超过6个值.我尝试了例如休息,标签,但这不起作用

    (p <- ggplot(dataPVal.m, aes(variable, structure)) + 
          geom_tile(aes(fill = pValue), colour = "white") + 
          scale_colour_gradientn(colour = rainbow(100), breaks = c(1,2,3,4,5,6), labels =c("a","b","c","d","e","f")) +
          theme_grey(base_size = base_size) + 
          labs(x = "position (0=seed start)",y = "structure") + ## labels
          #scale_x_discrete(expand = c(0.01, 0.01)) +            ## grauer rand oben/unten
          #scale_y_discrete(expand = c(0.01, 0.01)) +            ## grauer rand links/rechts
          opts(title=plot_title,legend.position = "left",axis.ticks = theme_blank(), axis.text.x = theme_text(size = base_size * 0.8, angle = 330, hjust = 0, colour = "grey50"))
    )
    
    Run Code Online (Sandbox Code Playgroud)

这是pValue表(dataPVal.m)的示例:

        structure variable      value     pValue
1          CB      -10 1.00000000 1.00000000
2          BB      -10 1.00000000 1.00000000
3          SC      -10 0.34700205 0.34700205
4          GC      -10 1.00000000 1.00000000
5          BC      -10 1.00000000 1.00000000
6          SG      -10 0.44494198 0.44494198
7          JG      -10 1.00000000 1.00000000
8          IG      -10 1.00000000 1.00000000
9          HG      -10 1.00000000 1.00000000
10         CG      -10 1.00000000 1.00000000
11         HH      -10 1.00000000 1.00000000
12         GH      -10 0.34375000 0.00000025
13         SI      -10 0.25000000 0.25000000
14         JI      -10 0.40359735 0.40359735
15         II      -10 1.00000000 1.00000000
16         GI      -10 1.00000000 1.00000000
17         SJ      -10 0.53296021 0.53296021
18         IJ      -10 1.00000000 1.00000000
19         GJ      -10 1.00000000 1.00000000
20         US      -10 0.19567557 0.19567557
21         SS      -10 0.43017585 0.00000032
22         JS      -10 1.00000000 1.00000000
23         IS      -10 1.00000000 1.00000000
24         GS      -10 1.00000000 1.00000000
25         CS      -10 1.00000000 1.00000000
26         UU      -10 0.39863089 0.39863089
27         SU      -10 0.50000000 0.50000000
28         JU      -10 1.00000000 1.00000000
29         CB       -9 0.34944171 0.34944171
30         BB       -9 1.00000000 1.00000000
31         SC       -9 0.53230531 0.53230531

有没有人解决这两个问题?

这么久

Pra*_*ani 8

当我插入

+ scale_fill_gradient( trans = 'log' ) +
Run Code Online (Sandbox Code Playgroud)

之后geom_tile(...)它的填充比例改变为对数,并有8个说明条目pValue(e^0, e^(-2),...e^(-14)).那是你试过的吗?