簡體   English   中英

ggplot顏色圖例形狀混合了字母數字和形狀

[英]ggplot color legend shape mixes alphanumeric and shape

在ggplot中包含ggrepel會在圖例中形成一個有趣的形狀:

在此輸入圖像描述

問:如何用正常形狀替換它?

示例代碼:

data(mtcars)
library(ggplot2)
library(ggrepel)

ggplot(mtcars, aes(x = mpg, y = wt, color = factor(vs), size = factor(cyl))) +
  geom_point() +
  geom_text_repel(aes(label = rownames(mtcars)), size = 5)

sessionInfo:

R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.1 LTS

locale:
  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=nl_NL.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=nl_NL.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=nl_NL.UTF-8      
[8] LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=nl_NL.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
  [1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
  [1] magrittr_1.5       ggrepel_0.5        ggplot2_2.1.0.9000

loaded via a namespace (and not attached):
  [1] labeling_0.3     colorspace_1.2-6 scales_0.4.0     assertthat_0.1   plyr_1.8.4       rsconnect_0.4.3  tools_3.2.3      gtable_0.2.0     tibble_1.1       Rcpp_0.12.6      grid_3.2.3       digest_0.6.10   
[13] munsell_0.4.3  

ggrepel有show.legend參數,所以我們需要show.legend = FALSE如下:

show.legend
邏輯。 這一層應該包含在傳說中嗎? NA,默認值,包括是否映射任何美學。 FALSE從不包括,TRUE總是包含。

ggplot(mtcars, aes(x = mpg, y = wt, color = factor(vs), size = factor(cyl))) +
  geom_point() +
  geom_text_repel(aes(label = rownames(mtcars)), size = 5, show.legend = FALSE)

作為旁注,為了清楚起見,請在ggplot外部准備數據:

#fix the data
plotDat <- mtcars
plotDat$vs <- as.factor(plotDat$vs)
plotDat$cyl <- as.numeric(as.factor(plotDat$cyl))
plotDat$myLabel <- rownames(plotDat)

#then plot
ggplot(plotDat, aes(x = mpg, y = wt,
                    color = vs, size = cyl,
                    label = myLabel)) +
  geom_point() +
  geom_text_repel(size = 5, show.legend = FALSE)

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM