R ggplot:为连续变量R95p_e设置点大小分档的问题
散点图问题:变量分档报错+点大小无法区分
1. 连续变量分档失败
想要给连续变量R95p_e分档,用来控制散点图的点大小,执行以下代码:
iris <- iris %>% mutate(discrete_var2 = cut(R95p_e, c(-0.5,0.06,0.08,0.1,0.12,0.14,0.16,0.18,0.2,3))))
报错信息:Error: Continuous value supplied to discrete scale,尝试将R95p_e转为数值型或因子型后仍无法解决。
2. 散点图点大小完全一致
改用直接映射连续变量R95p_e到点大小的代码,结果所有点大小无差异:
iris %>% ggplot(aes(CDD_d, R95p_d, color = discrete_var, size = R95p_e)) + geom_quadrant_lines(linetype = "solid") + geom_point(alpha = 0.5) + scale_color_manual(values = col) + scale_size_continuous(breaks = c(1,2,3,4,5,6,7,8)) + scale_x_continuous(limits = symmetric_limits) + scale_y_continuous(limits = symmetric_limits) + theme_minimal() + geom_text(aes(label = ifelse(CDD_e > quantile(CDD_e,probs = .95,na.rm=TRUE) | R95p_e > quantile(R95p_e,probs = .95,na.rm=TRUE), as.character(NAME), ""), size = 0.1),show_guide=F) + labs(size="极端降水贸易加权暴露度", colour="极端干旱贸易加权暴露度")
可复现代码
iris <- structure(list(NAME = c("阿富汗", "阿尔巴尼亚", "阿尔及利亚", "美属萨摩亚", "安道尔", "安哥拉", "安圭拉", "南极洲", "安提瓜和巴布达", "阿根廷"), CDD_d = c(-0.0409, 0.0349, 0.092, NA, 0.0493, -0.087, NA, NA, NA, -0.0199), R95p_d = c(0.2219, 0.0564, 0.1601, NA, 0.0669, 1.9369, NA, NA, NA, 0.124), CDD_e = c(0.0163842166664955, 0.0420785596173385, 0.0301859613207384, NA, NA, 0.0132801284765419, NA, NA, 0.01446, 0.0979854033169376), R95p_e = c(0.200947581296687, 0.105155138501437, 0.123916523483283, NA, NA, 0.185846581581744, NA, NA, 0.01664, 0.146239802993381), discrete_var = structure(c(5L, 7L, 6L, NA, NA, 5L, NA, NA, 5L, 9L), levels = c("— -6", "-6 to -4", "-4 to -2", "-2 to 0", "0 to 2", "2 to 4", "4 to 6", "6 to 8", "8 — "), class = "factor"), discrete_var2 = structure(c(9L, 4L, 5L, NA, NA, 8L, NA, NA, 1L, 6L), levels = c(" — -6", "6 to 8", "8 to 10", "10 to 12", "12 to 14", "14 to 16", "16 to 18", "18 to 20", "20 —"), class = "factor")), row.names = c(NA, 10L), class = "data.frame")
内容的提问来源于stack exchange,提问作者MoonS
相关产品推荐
相关产品推荐

