美文网首页
R语言read.table()函数读取文件如果有换行符\n,一个

R语言read.table()函数读取文件如果有换行符\n,一个

作者: 小明的数据分析笔记本 | 来源:发表于2021-11-03 15:54 被阅读0次

    使用R语言的ggplot2作图,使用geom_text()函数添加文本,因为文本比较长,所以想在文本中间添加一个换行符,这样添加文本后就可以换行显示

    image.png

    这个是数据

    但是使用R语言读取进来的时候为什么会多一个斜杠呢?

    image.png

    我是win10系统 R语言是4.0.3

    我之前好像也这样处理过数据,当时好像没有遇到过这个问题呀

    暂时不知道问题出在哪了

    查了还没有找到资料

    linux系统也有这个问题

    image.png

    现在想到的办法是只能把这一列数据拆分成两列,读入以后再使用换行符把两列数据粘贴成一列

    read.table("abcd.csv",sep=",",header=T) -> pra
    pra
    
    pra$label1<-paste(pra$x,pra$y,sep="\n")
    
    ggplot()+
      geom_text(data=pra,aes(x=x,y=y,label=label1))
    
    image.png

    这样是行得通的

    还有一个办法是用空格替换换行符

    然后使用stringr这个包里的str_wrap()函数

    pra<-read.csv("abcd.csv")
    pra
    
    ggplot()+
      geom_col(data=pra,aes(x=x,y=y,fill=x))+
      geom_text(data=pra,aes(x=x,
                             y=y+1,
                             label=stringr::str_wrap(label1,width=1)))
    
    image.png

    还有一个知识点是如果坐标轴文本过长

    也可以使用stringr这个包里的str_wrap()函数

    df<-data.frame(x=c("AAAAAAA  AAAAA AAA",
                       "BBBBBBB  BBBB BBB",
                       "DDDDDDD  DDD DDDD"),
                   y=5)
    ggplot()+
      geom_col(data=df,aes(x=x,y=y,fill=x))+
      #coord_flip()+
      scale_x_discrete(labels=function(x)stringr::str_wrap(x,width = 1))+
      geom_text(data=df,aes(x=x,y=y+0.5,label=str_wrap(x,width=1)))+
      scale_y_continuous(expand = c(0,0),limits = c(0,7))
    
    image.png

    这里又遇到了另外一个问题是图例没有换行,又不知道如何解决了!

    欢迎大家关注我的公众号

    小明的数据分析笔记本

    小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

    相关文章

      网友评论

          本文标题:R语言read.table()函数读取文件如果有换行符\n,一个

          本文链接:https://www.haomeiwen.com/subject/bchczltx.html