【问题标题】:scale_fill_distiller ggplot legend missing for some data frames but not othersscale_fill_distiller ggplot 图例在某些数据帧中缺失,但在其他数据帧中缺失
【发布时间】:2018-03-26 11:02:18
【问题描述】:

我是 R 新手,所以我还没有弄清楚如何将相同的更改应用于多个数据帧并从每个结果数据帧中绘图。我通过将每个输入 csv 一个一个地插入到 R 降价文件中来完成此操作。

我从输入文件中的相同起始格式创建了 5 个数据帧(此处仅显示 3 个),使用相同的操作集来获得一个看起来像这样的“可绘图”数据帧(此处仅显示前几行) .只有“统计”不同:

Df1-HA 类型:

    Stat    Segment NullbyObs   id  stars
49  H4  HA  0.297083314 1   ***
25  H13 HA  0.09558552  2   ***
57  H5  HA  0.150072798 3   ***
9   H10 HA  0.184111297 4   ***
33  H2  HA  0.182582378 5   ***
81  H9  HA  0.341334025 6   ***
73  H7  HA  0.256536424 7   ***
65  H6  HA  0.260052443 8   ***
41  H3  HA  0.504939556 9   **
1   H1  HA  0.260205358 10  ***
17  H11 HA  0.503464461 11  **
56  H4  PB2 0.184828306 12  ***
32  H13 PB2 0.298094661 13  **
64  H5  PB2 0.199737211 14  ***

Df2-赛季:

    Stat    Segment NullbyObs   id  stars
25  spring migration    HA  0.309504658 1   ***
17  overwintering   HA  0.423053354 2   *
9   breeding    HA  0.712614687 3   .
1   autumn migration    HA  0.586144734 4   .
32  spring migration    PB2 0.318294644 5   ***
24  overwintering   PB2 0.450508305 6   ***
16  breeding    PB2 0.636836392 7    

Df3-HostType:

    Stat    Segment NullbyObs   id  stars
17  OD  HA  0.447867405 1   *
25  YAG HA  0.192755193 2   ***
9   MD  HA  0.337331563 3   **
1   BMG HA  0.42653249  4   *
24  OD  PB2 0.271704769 5   ***
32  YAG PB2 0.260490477 6   ***
16  MD  PB2 0.446735462 7   **

我使用此代码从每个数据帧中绘制:

plot <- ggplot(data = plotdata,
       aes(x = Segment, y = Stat, fill = NullbyObs)) + 
       geom_tile() +
       scale_fill_distiller(palette = "RdYlBu", trans = "log10") +
       labs(y=NULL, x=NULL, fill="Null/Obs") +
       geom_text(aes(label=stars), color="black", size=4) +
       coord_equal()

plot

为什么显示了 Df1-HAtype 的图例,但 Df2-Season 和 Df3-HostType 的图中却没有图例?

【问题讨论】:

标签: r ggplot2 legend


【解决方案1】:

scale_fill_distiller内添加breaks=seq(0,1,0.1)

plotdata <- Df2_Season
p <- ggplot(data = plotdata , aes(x = Segment, y = Stat, fill = NullbyObs)) + 
     geom_tile() +
     scale_fill_distiller(palette = "RdYlBu", trans = "log10", 
                          breaks=seq(0,1,0.1), labels=seq(0,1,0.1)) +
     labs(y=NULL, x=NULL, fill="Null/Obs") +
     geom_text(aes(label=stars), color="black", size=4) +
     coord_equal()
p

Df2_Season

Df3_HostType

【讨论】:

  • 啊,非常感谢!我尝试删除日志转换(trans =“log10”),然后它不需要休息来显示图例。不知道我明白为什么,但很高兴能解决它。
猜你喜欢
  • 2020-03-08
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
  • 2017-01-31
相关资源
最近更新 更多