微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将单词之间的换行符添加到 ggplot 中的轴标签

如何解决将单词之间的换行符添加到 ggplot 中的轴标签

我正在寻找一种方法来为我的 x 轴标签添加换行符,因为它们目前太长了。

enter image description here

这是我的几个图之一的代码

PortR_plot = ggplot(data=PortR,mapping = aes(x=Energy.Type,y=Scaled.score,fill=Energy.Type)) 
  + labs(title="Portfolio R",x=('Energy Type'),y=('Scaled score'))

PortR_plot + geom_Boxplot()+ scale_x_discrete(limits=c('Battery storage','Geothermal','Onshore Wind','Pumped Storage','Run of River Hydro','Small Storage Hydro','Solar')) 
  + ylim(0,1)+ theme(text = element_text(size = 20))


我知道您可以使用 scale_x_discrete 添加中断 (\n) 但我已经在使用 scale_x_discrete 来显示原始数据集 (PortR) 中没有的空能量类型,因此当我在那里添加换行符时,例如:

scale_x_discrete(limits=c('Battery \n storage',etc etc

它不起作用,因为它与数据集中的能量类型名称不匹配。

我尝试了 the method from this blog,但没有产生任何明显的变化。

任何帮助将不胜感激!

编辑:添加数据样本

structure(list(Project = c("Batt_1","Wind_2","Wind_3","Wind_4","Wind_5","Wind_6","Wind_7","Wind_8","Wind_9","Hydro_1","Hydro_2","Hydro_3"),Energy.Type = c("Battery storage","Onshore Wind","Small Storage Hydro","Small Storage Hydro"
),Scaled..T.FW. = c(0,1.29,1.19,0.69,1.14,0.11,0.9,0.52,1.02,0.85,0.83,0.31)),row.names = c(NA,-12L),class = "data.frame")

Edit2:我想我可能在导入到 R 之前通过在 excel 中添加中断(alt+enter)来强制解决方案。仍然有兴趣了解 R 中的解决方案。

Edit3:我尝试做 Ronak 展示的内容,但是当我尝试通过 scale_x_discrete(limits) 在 x 轴上添加其他能量类型时,我得到了一个空白图。

解决方法

您可以使用 stringr::str_wrap 来包装 x 轴文本。您可以根据自己的选择更改 widthstr_wrap 参数。

library(ggplot2)

ggplot(df,aes(x = stringr::str_wrap(Energy.Type,10),y=Scaled..T.FW.,fill=Energy.Type)) +
  geom_boxplot() + 
 labs(title="All Projects",x= 'Energy Type',y= 'Scaled Score')

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?