【问题标题】:GGPlot won't display more than 3 colorsGGPlot 不会显示超过 3 种颜色
【发布时间】:2020-09-02 21:42:31
【问题描述】:

GGPlot 只显示前三种颜色(绿色、黄色和橙色),代码如下:

p = ggplot(MobileOutput, aes(x=`Timestamp(UTC)`,y=`PM2.5(ug/m3)`))+
  geom_point(aes(colour = cut(`PM2.5(ug/m3)`, c(0, 12.0, 35.4, 55.4, 150.4, 250.4, 500, Inf))),
             size = 0.1) +
  ylim(0,500)  +
  theme_bw() +
  scale_color_manual(name = "PM2.5",
                     values = c("(0,12]" = "green2",
                                "(12,35.4]" = "yellow2",
                                "(35.4,55.4]" = "orange",
                                "(55.4,150.4]" = "red1",
                                "(150.4, 250.4]" = "red2",
                                "(250.4, 500]" = "red3",
                                "(500, Inf]" = "red4"))
gPlotly <- ggplotly()

所有红色仍以不可见的透明/白色绘制。我可以将鼠标悬停在不可见的数据上并查看有关它的信息,以确认它正在被绘制(见下图)。此外,图例中它们的范围旁边会出现一个绿色、黄色和橙色的点,而图例中没有预期的红点。

如果我将上面的代码调整为包含以下 3 个范围,所有颜色都会按预期显示:

p = ggplot(MobileOutput, aes(x=`Timestamp(UTC)`,y=`PM2.5(ug/m3)`))+
  geom_point(aes(colour = cut(`PM2.5(ug/m3)`, c(0, 12.0, 35.4, Inf))),
             size = 0.1) +
  ylim(0,500)  +
  theme_bw() +
  scale_color_manual(name = "PM2.5",
                     values = c("(0,12]" = "green2",
                                "(12,35.4]" = "yellow2",
                                "(35.4,Inf]" = "red4"))
gPlotly <- ggplotly()

如果我添加一个额外的范围,列出的第 3 项以外的任何内容都会再次完全不可见,如第一张图片所示。

我可以调整什么来让 GGPlot 支持在图例和绘图中显示超过 3 种颜色/范围吗?

【问题讨论】:

  • 如果你将它们拖入绿色/黄色/橙色的位置,红色会出现吗?

标签: r ggplot2 ggplotly


【解决方案1】:

看起来cut() 在其标签中舍入值:在此示例中,断点都在 (x+0.4),但较大的 bin 的端点在标签中以整数形式给出(150、250 而不是 150.4 , 250.4)。这将导致剪切PM2.5 向量中的唯一值/级别与您在比例中指定的值/级别不匹配。

 table(cut(rnorm(1000,150,200), 
    breaks=c(0, 12.0, 35.4, 55.4, 150.4, 250.4, 500, Inf)))

 (0,12]   (12,35.4] (35.4,55.4]  (55.4,150]   (150,250]   (250,500] 
     17          31          25         194         199         282 
 (500,Inf] 
     43 

【讨论】:

    猜你喜欢
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多