Мне нужен гибкий способ создания диаграмм радаров/пауков в ggplot2. От решений, которые я нашел на GitHub и группы ggplot2, я пришел далеко:Закрытие линий в ракете ggplot2/диаграмме пауков
library(ggplot2)
# Define a new coordinate system
coord_radar <- function(...) {
structure(coord_polar(...), class = c("radar", "polar", "coord"))
}
is.linear.radar <- function(coord) TRUE
# rescale all variables to lie between 0 and 1
scaled <- as.data.frame(lapply(mtcars, ggplot2:::rescale01))
scaled$model <- rownames(mtcars) # add model names as a variable
as.data.frame(melt(scaled,id.vars="model")) -> mtcarsm
ggplot(mtcarsm, aes(x = variable, y = value)) +
geom_path(aes(group = model)) +
coord_radar() + facet_wrap(~ model,ncol=4) +
theme(strip.text.x = element_text(size = rel(0.8)),
axis.text.x = element_text(size = rel(0.8)))
, который работает, за исключением того, что линии не закрыты, за исключением. я thougth, что я смог бы сделать это:
mtcarsm <- rbind(mtcarsm,subset(mtcarsm,variable == names(scaled)[1]))
ggplot(mtcarsm, aes(x = variable, y = value)) +
geom_path(aes(group = model)) +
coord_radar() + facet_wrap(~ model,ncol=4) +
theme(strip.text.x = element_text(size = rel(0.8)),
axis.text.x = element_text(size = rel(0.8)))
для того, чтобы присоединиться к линии, но это не работает. Ни делает это:
closes <- subset(mtcarsm,variable == names(scaled)[c(1,11)])
ggplot(mtcarsm, aes(x = variable, y = value)) +
geom_path(aes(group = model)) +
coord_radar() + facet_wrap(~ model,ncol=4) +
theme(strip.text.x = element_text(size = rel(0.8)),
axis.text.x = element_text(size = rel(0.8))) + geom_path(data=closes)
, который не решает проблему, а также производит много
«geom_path: Каждая группа состоит только из одного наблюдения Вы должны настроить группу эстетику.? "
сообщения. Сом, как я могу закрыть линии?
/Fredrik
'ggplot (mtcarsm [mtcarsm $ модель == "Мазерати Бора",], АЕС (х = переменная, у = значение)) + geom_path (AES (группа = модели)) + coord_radar()' закрывает линии здесь. – lukeA
Теперь я в замешательстве. Запуск кода, который вы опубликовали, четко показывает пробел в строке между «mpg» и «carb» для меня. Что здесь происходит? –
Забудьте отметить: закрывает строку для фрейма данных rbind. – lukeA