【发布时间】:2017-01-06 00:53:06
【问题描述】:
我希望为多变量数据制作雷达图,这对于 Excel 来说非常简单。
当我还想在上面绘制一些误差线时,问题就来了。据我了解,我不能在excel中做到这一点。这在 R 上可行吗?
或者有人可以提出替代方案吗?我有 32 个单值维度。
谢谢!
【问题讨论】:
我希望为多变量数据制作雷达图,这对于 Excel 来说非常简单。
当我还想在上面绘制一些误差线时,问题就来了。据我了解,我不能在excel中做到这一点。这在 R 上可行吗?
或者有人可以提出替代方案吗?我有 32 个单值维度。
谢谢!
【问题讨论】:
我不太喜欢雷达图,但这里有一些想法可以帮助您继续前进,请参考 this approach。我最喜欢选项 1 的外观,但我不确定如何解决 var32 和 var1 之间的差距(我有一些想法,但有点尴尬)。
library(tidyverse)
library(ggplot2)
library(scales)
# make some mock data
mydata <- data.frame(variable = paste0("Var", 1:32),
midpoint = rnorm(32),
stderr = rnorm(32, 1, 0.1),
stringsAsFactors = FALSE) %>%
mutate(upper = midpoint + 1.96 * stderr,
lower = midpoint - 1.96 * stderr) %>%
mutate(variable = factor(variable, levels = variable))
# Option 1:
mydata %>%
ggplot(aes(x = variable, y = midpoint, group = 1)) +
geom_ribbon(aes(ymin = lower, ymax = upper), fill = "grey50", alpha = 0.5) +
geom_line(colour = "purple") +
theme_light() +
theme(panel.grid.minor = element_blank()) +
coord_polar() +
labs(x = "", y = "")
# Option 2:
mydata %>%
gather(measure, value, -variable, -stderr) %>%
ggplot(aes(x = variable, y = value, colour = measure, group = measure, linetype = measure)) +
geom_polygon(fill = NA) +
theme_light() +
theme(panel.grid.minor = element_blank()) +
coord_polar() +
scale_colour_manual(values = c("steelblue", "black", "steelblue")) +
scale_linetype_manual(values = c(2,1,2)) +
labs(x = "", y = "")
# Option 3:
mydata %>%
ggplot(aes(x = variable, y = midpoint, group = 1)) +
geom_polygon(fill = NA, colour = "purple") +
geom_segment(aes(xend = variable, y = lower, yend = upper), colour = "grey50") +
geom_point(colour = "purple") +
theme_light() +
theme(panel.grid.minor = element_blank()) +
theme(panel.grid.major.x = element_blank()) +
coord_polar() +
labs(x = "", y = "")
我想我更喜欢这个:
# Option 4:
mydata %>%
ggplot(aes(x = variable, y = midpoint, group = 1)) +
geom_polygon(aes(y = upper), fill = "grey50", alpha = 0.5) +
geom_polygon(aes(y = lower), fill = "grey99", alpha = 0.7) +
geom_polygon(fill = NA, colour = "purple") +
theme_light() +
theme(panel.grid.minor = element_blank()) +
coord_polar() +
labs(x = "", y = "")
【讨论】:
geom_polygon(aes(y = One_upper), fill = "#ac07e3", alpha = 0.5) +geom_polygon(aes(y = One_lower), fill = "white", alpha=1),但问题是,因为我必须使用“白色”以实现阴影置信区间,并且我有多个这样的层,其中一些彩色区域被白色遮挡。这是我得到的:imgur.com/tLp4KCh 但红色区域实际上应该是这样的:imgur.com/B5U5kLo 关于如何使所有颜色可见的任何提示?谢谢!