美文网首页
R画slope chart及代码

R画slope chart及代码

作者: gtt儿_生物信息学习 | 来源:发表于2019-10-26 09:56 被阅读0次

    我们在想要展示我们的科研结果的时候经常会需要用到一些图,其中slope chart也是我们常用图之一,slope看起来复杂,但是也是可以用R画的,代码如下:

    library(ggplot2)
    library(scales)
    theme_set(theme_classic())
    
    # prep data
    df <- read.csv("https://raw.githubusercontent.com/selva86/datasets/master/gdppercap.csv")
    colnames(df) <- c("continent", "1952", "1957")
    left_label <- paste(df$continent, round(df$`1952`),sep=", ")
    right_label <- paste(df$continent, round(df$`1957`),sep=", ")
    df$class <- ifelse((df$`1957` - df$`1952`) < 0, "red", "green")
    
    # Plot
    p <- ggplot(df) + geom_segment(aes(x=1, xend=2, y=`1952`, yend=`1957`, col=class), size=.75, show.legend=F) + 
                      geom_vline(xintercept=1, linetype="dashed", size=.1) + 
                      geom_vline(xintercept=2, linetype="dashed", size=.1) +
                      scale_color_manual(labels = c("Up", "Down"),
                                         values = c("green"="#00ba38", "red"="#f8766d")) +  # color of lines
                      labs(x="", y="Mean GdpPerCap") +  # Axis labels
                      xlim(.5, 2.5) + ylim(0,(1.1*(max(df$`1952`, df$`1957`))))  # X and Y axis limits
    
    # Add texts
    p <- p + geom_text(label=left_label, y=df$`1952`, x=rep(1, NROW(df)), hjust=1.1, size=3.5)
    p <- p + geom_text(label=right_label, y=df$`1957`, x=rep(2, NROW(df)), hjust=-0.1, size=3.5)
    p <- p + geom_text(label="Time 1", x=1, y=1.1*(max(df$`1952`, df$`1957`)), hjust=1.2, size=5)  # title
    p <- p + geom_text(label="Time 2", x=2, y=1.1*(max(df$`1952`, df$`1957`)), hjust=-0.1, size=5)  # title
    
    # Minify theme
    p + theme(panel.background = element_blank(),
               panel.grid = element_blank(),
               axis.ticks = element_blank(),
               axis.text.x = element_blank(),
               panel.border = element_blank(),
               plot.margin = unit(c(1,2,1,2), "cm"))
    
    image.png

    恭喜你,又学到了一个新技能。有任何问题,欢迎留言。
    微信公众号:生物信息学习,后台回复slope,即可获得代码。

    相关文章

      网友评论

          本文标题:R画slope chart及代码

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