首页 > 解决方案 > ggplot散点图排列X轴值

问题描述

您好,我正在使用 ggplot2 绘图创建绘图 我想根据我的另一列值修改 x 轴值 任何人都可以建议我根据该列值对值进行分组

样本数据

  Names    Values   group
  FLAM_C    20.03965    1
  MER112    20.09371    1
  L1MA10    20.11173    1
   L1PB3    20.20184    1
  LTR78B    20.27392    1
  MLT1H1    20.29194    2
   (TG)n    20.30997    2
  Charlie7  20.58028    2
 MamRep605  20.27392    2
   LTR16A   20.47216    2
  Charlie1b 20.94071    3
   L1PA6    20.29194    3
   MLT1G1   20.68841    4
  LTR67B    20.72445    4
  MER58A    20.94071    4

脚本

library(ggplot2)
df=read.table("test1",sep='\t', header=TRUE)
df = data.frame(df)
head(df)
ggplot(df, aes(y=Values, x =Names, col=group)) +
  geom_point()

test1 高于文件中的数据

标签: rggplot2

解决方案


干得好:

library(tidyverse)
test1<-tribble(~Names,    ~Values,   ~group,
"FLAM_C" ,   20.03965,    1,
"MER112"  ,  20.09371,    1,
"L1MA10"   , 20.11173,    1,
"L1PB3",    20.20184,    1,
"LTR78B",    20.27392,    1,
"MLT1H1",    20.29194,    2,
"(TG)n" ,   20.30997,    2,
"Charlie7",  20.58028,    2,
"MamRep605",  20.27392,    2,
"LTR16A",   20.47216,    2,
"Charlie1b", 20.94071,    3,
"L1PA6",    20.29194,    3,
"MLT1G1",   20.68841,    4,
"LTR67B" ,   20.72445,    4,
"MER58A",    20.94071,    4)


ggplot(test1, 
       aes(y=Values, 
           x =fct_reorder(Names, group),  #if you want to change order of group, use fct_reorder(Names, desc(group))
           col=group)) +
  geom_point()

我不知道您为什么要根据组进行安排,但是此代码应该适合您。诀窍是 fct_reorder。


推荐阅读