2015-11-12 6 views
7

Я должен построить двудольный граф, подобный этому: Bipartite graph comparisonУчасток двудольный плюс линейный график сравнения

Я 2 ранжированный список вычисляется из двух различных метода ранжирования. Я хотел бы построить эти данные, чтобы дать грубую качественную информацию о сходстве 2 ранжированных списков.

данные мне нужно, чтобы отобразить что-то вроде этих названных векторов:

rankMathodA = c(1.5, 4, 7, 3, 4.2) 
names(rankMathodA) = c("Team1", "Team2", "Team3", "Team4", "Team5") 
rankMathodA 
#Team1 Team2 Team3 Team4 Team5 
# 1.5 4.0 7.0 3.0 4.2 

rankMathodB = c(1.7, 3.5, 6.2, 3.9, 4.1) 
names(rankMathodB) = c("Team1", "Team2", "Team3", "Team4", "Team5") 
rankMathodB 
#Team1 Team2 Team3 Team4 Team5 
# 1.7 3.5 6.2 3.9 4.1 
+1

Вы могли бы найти это полезным:. Http://stackoverflow.com/questions/25781284/simplest-way-to- plot-changes-in-ranking-between-two-ordered-lists-in-r. Плюс два других цитирования для диаграмм и slopegraphs: + + + + .wordpress.com/2009/05/06/ggplot2-шишка-чарт / – lawyeR

ответ

3

Вот начало для ggplot-подхода с некоторым перепрофилированием данных. Этикетки (с использованием geom_text добавляются отдельно контролировать текст-плейсмент

library(reshape2) 
library(ggplot2) 

#create a dataframe with all necessary variables 
dat <- data.frame(team=c("Team1", "Team2", "Team3", "Team4", "Team5"), 
        rankA=c(1.5, 4, 7, 3, 4.2), 
        rankB=c(1.7, 3.5, 6.2, 3.9, 4.1)) 
#turn to long 
dat_m <- melt(dat,id.var="team") 

#plot 
ggplot(dat_m, aes(x=variable, y=value, group=team)) + 
    geom_line() + 
    geom_text(data=dat_m[dat_m$variable=="rankA",],aes(label=team),hjust=1.1) + 
    geom_text(data=dat_m[dat_m$variable=="rankB",],aes(label=team),hjust=-0.1) + 
    geom_vline(xintercept = c(1,2)) + 
    #hide axis, labels, grids. 
    theme_classic() + 
    theme(
    axis.title = element_blank(), 
    axis.line = element_blank(), 
    axis.text = element_blank(), 
    axis.ticks = element_blank()) 

enter image description here