2015-02-11 73 views
2

与几个变量标注轴我有一个数据帧如下:如何R中GGPLOT2

Name,Tutor,Test,Score,Percent,school.year 
Mark,Eric,Maths,100,100,2 
Mark,Eric,English,91,91,2 
Sue,Richard,Maths,88,100,5 
Sue,Richard,English,71,80.7,5 

我想在y轴和名称与每个测试条的x轴绘制个百分点。我的代码做我想要的情节,但x轴标签只是名称。我想在x轴上添加其他变量(仅用于标签)。所以比如标有2个小节; 1代表数学,1代表英语,他的xaxis标签也有'标志''\''埃里克',所以我们可以看到谁指导了他。如果可能的话,我想添加几个额外的标签,如学年。我的代码到目前为止如下;

results <- read.csv('results.csv') 
p <- ggplot(results, aes(y=Percent, x=Name, colour=Test, fill=Test)) + 
geom_bar(stat='identity', position='dodge') + 
ggtitle('Test Results') + 
ylab('Percent') 

我可以绘制的单个变量作为x轴标签e.g:

+scale_x_discrete(labels = results$Score) 

或手动地改变它们(虽然也有与订单问题);

scale_x_discrete(标签= C( '马克\ n埃里克', '苏\ n理查德' 等))

有没有办法到其他变量添加到X-标签,最好有换行符?非常感谢

回答

4

我建议在数据帧创建另一列,其中将包含标签,然后用它作为x

results$label <- paste(results$Name,results$Tutor,sep='\n') 

ggplot(results, aes(y=Percent, x=label, colour=Test, fill=Test)) + 
    geom_bar(stat='identity', position='dodge') + 
    ggtitle('Test Results') + 
    ylab('Percent') 

enter image description here

+0

完善,能解决它 – user3062260 2015-02-11 21:05:47