#r #ggplot2 #data-visualization
#r #ggplot2 #визуализация данных
Вопрос:
Привет, у меня есть набор данных, который выглядит следующим образом :
data_08_17 <- data_2%>% filter(year %in%(2008:2017))
Часть набора данных для воссоздания:
>dput(data_08_17[1:6,])
structure(list(year = c(2017L, 2017L, 2017L, 2017L, 2016L, 2016L
), tournament = c("U.S. Open", "Wimbledon", "French Open", "Australian Open",
"U.S. Open", "Wimbledon"), winner = c("Rafael Nadal", "Roger Federer",
"Rafael Nadal", "Roger Federer", "Stan Wawrinka", "Andy Murray"),
runner_up = c("Kevin Anderson", "Marin Cilic", "Stan Wawrinka",
"Rafael Nadal", "Novak Djokovic", "Milos Raonic")), row.names = c(NA,
6L), class = "data.frame")
Я хотел создать визуальный график с помощью ggplot, показывающий время, когда победители и занявшие вторые места встречались друг с другом в финалах каждого турнира.
Я просто не понимаю, как мне это сделать. Любая помощь будет оценена!!
Комментарии:
1. Теперь я предоставил некоторые примеры данных
Ответ №1:
Ваша структура данных подразумевает сеть или график, и ее лучше всего представить как таковую. Вы можете использовать пакеты igraph
и ggraph
для создания подходящего графика:
library(ggraph)
library(igraph)
g <- graph.data.frame(data_08_17[c(3:4, 1:2)])
ggraph(g, layout = 'linear', circular = TRUE)
geom_edge_arc(aes(colour = tournament))
geom_node_label(aes(label = name))
lims(x = c(-1.5, 1.5), y = c(-1.5, 1.5))
theme_void()
Комментарии:
1. Привет, спасибо за ваш комментарий. однако мой график выглядит иначе, поскольку оказывается, что на графике вместо имени игрока показаны 4 турнира и весь год. Я не знаю, как поместить код в комментарий. Но это мой код для графика: data_08_17 <- graph.data.frame(data_08_17[c(3:4, 1:2)]) ty <- ggraph(data_08_17, layout = ‘linear’, circular = TRUE) geom_edge_arc(aes(цвет = data_08_17$ турнир)) geom_node_label(aes(label = name)) lims(x = c (-1.5, 1.5), y = c(-1.5, 1.5)) theme_void()
2. @ChrisTang в данных, которые вы передаете, должны быть игроки в первых двух столбцах. Звучит так, как будто данные, которые вы вводите, отличаются от данных в вашем примере. Если вы используете именно то
dput
, что вы указали в своем вопросе, и мой точный блок кода, вы получите этот точный график.3. большое вам спасибо за помощь, и, наконец, я понял это правильно. Но возможно ли показать, сколько раз они встречались друг с другом в финале? Я все еще пытаюсь найти хорошую визуализацию данных для такого типа задач.
Ответ №2:
чтобы представить график, состоящий из двух или более переменных, мы можем попробовать функцию facet_wrap,
ggplot(data, aes(x = Gr_Liv_Area, y = Sale_Price)) geom_point(alpha = .3) facet_wrap(~ Overall_Qual, nrow = 2)
или добавьте больше входных данных в ‘aes’ ggplot такого цвета или формы.
ggplot(data, aes(x = Gr_Liv_Area, y = Sale_Price, color = Central_Air)) geom_point(alpha = .5)
Комментарии:
1. Извините, но я не понимаю, как это связано с моими вопросами?