添加第二个y轴,没有相应的x数据

时间:2016-03-22 21:56:49

标签: r plot ggplot2 axis-labels geom-bar

我正在对课程评估进行图形分析。 我得到了以下数据:

> str(dataJ2)
'data.frame':   16 obs. of  22 variables:
...
 $ lk_nummer           : Factor w/ 111 levels "051-0311-00S",..: 19 30 38 47 49 50 51 55 56 59 ...
 $ le_titel            : Factor w/ 111 levels "","Advanced Methods and Strategies in Synthesis",..: 6 99 75 82 84 8 40 39 38 68 ...
 $ anzahl_stud         : int  7 79 1 34 10 20 83 10 4 11 ...
 $ durchschnitt        : num  4.61 5.35 3.5 4.4 4.4 4.33 4.49 4.53 5.38 4.48 ...
 $ standardabweich     : num  0.4 0.54 0 1.02 1.21 0.62 1.17 0.9 0.28 0.68 ...
...
 $ prozent_best        : num  85.7 97.5 0 70.6 90 80 73.5 90 100 81.8 ...
...

使用 ggplot2 我能够制作一个如下图:

plotJ2 <- ggplot(dataJ2, aes(y=durchschnitt,x=le_titel)) 

plotJ2 + geom_bar(position=position_dodge(), stat="identity", fill = I("chartreuse4")) + 
  scale_y_continuous(limits=c(0,6.6),breaks=seq(from=1, to=6, by=1)) +
  geom_errorbar(aes(ymin=durchschnitt-standardabweich, ymax=durchschnitt+standardabweich), width=.1) +
  ggtitle("2. Jahr Bsc Biologie") +
  ylab("Durchschnitt") + xlab("Fächer") +
  geom_text(aes(label = durchschnitt, y = 1.8), size = 4, colour="gray85") + 
  geom_text(aes(label = anzahl_stud, y = 0.2), size = 4, colour="grey85") + 
  geom_text(aes(label = prozent_best, y = 6.55), size = 4, colour="chartreuse4", adj=1) +
  geom_text(aes(label = "%", y = 6.6), size = 4, colour="chartreuse4", adj=0) +
coord_flip() 
  

Which looks like this when plotted.

但是,图形部分中的“prozent_best”看起来不太好。 我尝试使用 mtext text facet_wrap 添加来自“dataJ2 $ prozent_best”的数据作为右侧的第二个y轴标签灰色图形部分,但无法使其工作。

有什么建议吗?

  

数据注释的有用翻译/描述:

     

lk_nummer - &gt;讲座数量

     

le_titel - &gt;讲座名称

     

anzahl_stud - &gt;学生人数

     

durchschnitt - &gt;平均

     

prozent_best - &gt;通过考试的学生人数百分比

     

Fächer - &gt;类

1 个答案:

答案 0 :(得分:0)

尝试:

 geom_text(aes(label = paste0(prozent_best,'%'), y = 6.55),
 size = 4, colour="chartreuse4", hjust='right')

这将结合&#39;%&#39;符号值与一个字符串。一般来说,我建议在ggplot调用之外生成标签向量,但为此它不会增加太多混乱。

此外,您可能需要考虑添加scale_x_continuous(expand=0,limits=c(0,7))。这将摆脱左侧丑陋的灰色条纹。

也可以尝试添加theme_bw(),因为你的情节已经非常繁忙,ggplots标准主题背景中的灰色块只是让它看起来很糊涂。