繁体   English   中英

ggplot2中用于扩展图例标签的默认颜色

[英]Default colors in ggplot2 for extended legend labels

我想参考一个问题: 当不存在任何值时,强制ggplot图例显示所有类别

我处于类似情况,但我希望颜色为默认颜色。

我应该怎么做?

添加:

我仔细观察后发现,不幸的是,标签已更改。

原始数据如下所示:

> str(mj)
'data.frame':   4393 obs. of  22 variables:
 $ OS_Gatunek       : Factor w/ 5 levels "Taraxacum ancistrolobum",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ PH_CreateDate    : Factor w/ 15 levels "2016-04-06","2016-04-19",..: 2 2 2 2 2 2 2 2 2 2 ...
 $ L_Ksztalt        : Factor w/ 3 levels "lancetowaty",..: 3 2 3 3 2 2 3 3 2 3 ...
 $ L_Symetria       : Factor w/ 3 levels "duża","mała",..: 1 3 1 3 2 3 2 2 2 1 ...
 $ L_Sfaldowanie    : Factor w/ 2 levels "brak","obecne": 1 1 1 2 2 1 1 2 1 1 ...
 $ KS_Ksz           : Factor w/ 3 levels "hełmiasty","strzałkowaty",..: 2 3 1 1 3 1 1 1 1 1 ...
 $ KS_KszWierz      : Factor w/ 5 levels "spiczasty","tępo spiczasty",..: 3 1 5 2 2 1 1 2 3 4 ...
 $ KS_KszKrGor      : Factor w/ 10 levels "esowaty","odwrotnie esowaty",..: 7 7 10 1 7 10 10 10 10 10 ...
 $ KS_KszKrDol      : Factor w/ 10 levels "esowaty","odwrotnie esowaty",..: 9 7 10 7 7 9 9 10 9 9 ...
 $ KS_Zab           : Factor w/ 2 levels "brak","obecne": 1 1 1 1 1 1 1 1 1 1 ...
 $ KS_TendTworzKlap : Factor w/ 2 levels "brak","obecna": 1 1 1 1 1 1 2 1 1 2 ...
 $ KB_Ustawienie    : Factor w/ 5 levels "odchylone","odgięte",..: 1 1 1 3 1 1 1 1 1 1 ...
 $ KB_Zakonczenie   : Factor w/ 5 levels "ostro spiczaste",..: 3 3 2 3 2 2 5 5 3 2 ...
 $ KB_KsztKrawGornej: Factor w/ 10 levels "esowaty","odwrotnie esowaty",..: 10 1 10 7 7 10 10 10 10 1 ...
 $ KB_KsztKrawDolnej: Factor w/ 10 levels "esowaty","odwrotnie esowaty",..: 9 7 10 7 2 10 9 2 9 1 ...
 $ KB_ZabkKrGornej  : Factor w/ 2 levels "brak","obecne": 2 1 1 1 1 1 1 2 1 1 ...
 $ KB_ZabkKrDolnej  : Factor w/ 2 levels "brak","obecne": 1 2 1 1 1 1 1 1 1 1 ...
 $ KB_TendDoTwKlap  : Factor w/ 2 levels "brak","obecna": 1 1 1 1 1 1 1 1 1 1 ...
 $ I_Ksztalt        : Factor w/ 3 levels "całe","postrzępione",..: 1 1 1 2 1 1 1 2 1 2 ...
 $ I_Wyw            : Factor w/ 2 levels "brak","obecne": 2 2 2 2 2 2 2 2 2 2 ...
 $ I_SmolWyb        : Factor w/ 2 levels "brak","obecne": 2 2 2 1 2 1 2 1 2 2 ...
 $ N_Zabarwienie    : Factor w/ 5 levels "cały czerwonawy lub różowy",..: 5 4 5 5 1 1 5 1 5 1 ...

样本饼图的代码如下(更改为: 如何使用ggplot2创建带有百分比标签的饼图 ):

> data <- mj %>% 
+     group_by(N_Zabarwienie) %>% 
+     count() %>% 
+     ungroup() %>% 
+     mutate(per=`n`/sum(`n`)) %>% 
+     arrange(desc(N_Zabarwienie))
> data$label <- scales::percent(data$per)
> ggplot(data=data)+
+     geom_bar(aes(x="", y=per, fill=N_Zabarwienie), stat="identity", width = 1)+
+     coord_polar("y", start=0)+
+     theme_void()+
+     geom_text(aes(x=1.3, y = cumsum(per) - per/2, label=label))

该图表如下所示:
饼图1-第一个代码-所有物种

如果我按照本杰明·施莱格尔的建议更改代码,则:

> data <- mj %>% 
+     group_by(N_Zabarwienie) %>% 
+     count() %>% 
+     ungroup() %>% 
+     mutate(per=`n`/sum(`n`)) %>% 
+     arrange(desc(N_Zabarwienie))
> data$label <- scales::percent(data$per)
> ggplot(data=data)+
+     geom_bar(aes(x="", y=per, fill=N_Zabarwienie), stat="identity", width = 1)+
+     coord_polar("y", start=0)+
+     theme_void()+
+     geom_text(aes(x=1.3, y = cumsum(per) - per/2, label=label)) +
+     scale_fill_discrete(labels = c("zielony do bladego bez czerwieni", "zewnątrz blady", "w środku różowy", "cały czerwonawy lub różowy", "błyszcząco purpurowy"), drop = FALSE)

该图表如下所示:
饼图2-第二个代码-所有物种

在第一个图表中,最常见的是“całyczerwonawy lubróżowy”,表示所有带红色或粉红色(它是叶柄的颜色),在第二个图表中,“ zielony do bladego bez czerwieni”的意思是绿色到浅色没有红色。 区别是截然不同的。

第一个版本是正确的。

> summary(mj$N_Zabarwienie)
      cały czerwonawy lub różowy                na zewnątrz blady 
                            2943                                1 
           purpurowy z połyskiem                  w środku różowy 
                               1                              716 
zielony do bladego bez czerwieni 
                             732

当我更改数据范围时(仅针对一种物种),它仅显示图例的一部分(当前正在使用的图例)。

以下是所选物种(蒲公英)的示例图表(第一代码)。
饼图3-第一个代码-蒲公英

这是同一组数据,但是是从第二个代码生成的。
饼图4-第二个代码-蒲公英

这里的第一个版本也是正确的。

> summary(jta$N_Zabarwienie)
      cały czerwonawy lub różowy                na zewnątrz blady 
                             163                                0 
           purpurowy z połyskiem                  w środku różowy 
                               0                               85 
zielony do bladego bez czerwieni 
                             163

我想将为不同物种制作的图表彼此相邻,然后进行比较。 一个统一的传说是必不可少的。

所以我重复这个问题:
尽管数据范围不同,但具有默认颜色,如何在所有图表上创建相同的图例?

当定义颜色时,将使用在您喜欢的问题中使用的scale_fill_manual 如果你想默认的颜色,你可以使用scale_fill_discrete如果你的变量是离散或scale_fill_continuous如果您的变量是数字。

来自另一个问题的示例,该示例指定了colos:

ggplot(data =  dat, aes(x = Row, y = Col)) +
  geom_tile(aes(fill = Y1), color = "black") +
  scale_fill_discrete(labels = c("cat1", "cat2", "cat3", "cat4", "cat5", "cat6", "cat7", "cat8"), 
                      drop = FALSE)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM