在ggplot2中使y轴标签更短

时间:2017-03-01 14:24:50

标签: r ggplot2

我正在尝试在R闪亮中使用ggplot。 这是我试图绘制的数据,而Variables在x轴上,r_sqrd在y轴上,而colour用于定义条形的颜色。

> head(table)
                                                             Variables    r_sqrd colour
1   ifelse.glm(5.863 + -0.1 * NAME1 + -0.041 * NAME1 + -1.042 * NAME1) 0.4643450    Pos
2 ifelse.glm(7.472 + -0.041 * Name2 + -1.128 * Name2 + -0.075 * Name2) 0.4573173    Pos
3  ifelse.glm(5.504 + 0.031 * Name3 + -0.035 * Name3 + -0.012 * Name3) 0.4363604    Pos
4                                                 num.of.lettersName4) 0.1888032    Neg
5 ifelse.glm(4.474 + -0.028 * Name5 + -0.371 * Name5 + -0.147 * Name5) 0.1472681    Neg
6                                                                Name6 0.1460835    Neg

这就是我正在使用的代码:

p <- ggplot(table, aes(x=as.factor(Variables), y=r_sqrd, fill=colour)) +  
  labs(x="Variables",y="Importance (R square)") + geom_bar(stat="identity") +  coord_flip() +
  scale_x_discrete(limits = table$Variables[order(table$r_sqrd)]) +
  scale_fill_manual(values=c("Pos"="darkgreen", "Neg"="darkred")) + theme(legend.position="none")
print(p)

enter image description here 我的问题是y轴标签中的名称太长,使得图更小。

所以我使用了str_wrap函数:

p <- ggplot(table, aes(x=as.factor(Variables), y=r_sqrd, fill=colour)) +  
  labs(x="Variables",y="Importance (R square)") + geom_bar(stat="identity") +  coord_flip() +
  scale_x_discrete(labels = function(x) str_wrap(x, width = 25),limits = table$Variables[order(table$r_sqrd)]) +
  scale_fill_manual(values=c("Pos"="darkgreen", "Neg"="darkred")) + theme(legend.position="none")
print(p)

但我得到的结果是:

enter image description here 有没有办法以适当的方式获得这个情节

0 个答案:

没有答案