【问题标题】:How to label an axis with several variables in R ggplot2如何在 R ggplot2 中用多个变量标记轴
【发布时间】:2015-02-11 19:01:45
【问题描述】:

我有一个如下的数据框:

 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 标签还带有“mark”“\n”“Eric”,这样我们就可以看到谁辅导了他。如果可能的话,我想添加几个额外的标签,比如学年。到目前为止,我的代码如下;

 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 轴标签,例如:

 +scale_x_discrete(labels = results$Score)

或者手动更改(虽然顺序有问题);

scale_x_discrete(labels = c('Mark \n Eric','Sue \n Richard', etc))

有没有办法将其他变量添加到 x-labels,最好是换行符?非常感谢

【问题讨论】:

    标签: r ggplot2 axis-labels


    【解决方案1】:

    我建议在您的数据框中创建另一个包含标签的列,然后将其用作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')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-25
      • 2018-05-25
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      相关资源
      最近更新 更多