use*_*260 2 r ggplot2 axis-labels
我有一个数据框如下:
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
Run Code Online (Sandbox Code Playgroud)
我想在 y 轴上绘制百分比,在 x 轴上绘制每个测试的条形图。我的代码按照我想要的方式进行绘图,但 x 轴标签只是名称。我想在 x 轴中添加其他变量(仅添加到标签)。因此,例如标记有 2 个小节;数学 1 分,英语 1 分,他的 xaxis 标签上还标有“标记”“\n”“埃里克”,这样我们就可以知道是谁辅导了他。如果可能,我想添加几个额外的标签,例如学年。到目前为止,我的代码如下;
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')
Run Code Online (Sandbox Code Playgroud)
我可以将单个变量绘制为 x 轴标签,例如:
+scale_x_discrete(labels = results$Score)
Run Code Online (Sandbox Code Playgroud)
或者手动更改(虽然顺序有问题);
scale_x_discrete(labels = c('Mark \n Eric','Sue \n Richard', etc))
有没有办法将其他变量添加到 x 标签,最好是换行?非常感谢
我建议在您的数据框中创建另一列,其中将包含标签,然后将其用作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')
Run Code Online (Sandbox Code Playgroud)