Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot散点图排列X轴值_R_Ggplot2 - Fatal编程技术网

R ggplot散点图排列X轴值

R ggplot散点图排列X轴值,r,ggplot2,R,Ggplot2,您好,我正在使用ggplot2 plot创建绘图。我想根据我的另一列值修改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 (

您好,我正在使用ggplot2 plot创建绘图。我想根据我的另一列值修改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是文件中的数据

在这里:

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()
库(tidyverse)

test1我相信通过
group
将点分开的最好方法是对图进行分面

library(ggplot2)

ggplot(df1, aes(x = Names, y = Values, color = factor(group))) +
  geom_point() +
  facet_grid(~ group, scales = 'free_x') +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))
如果要对组进行重新排序,请强制首先使用正确的级别进行因子分析

然后绘制:

library(ggplot2)

df1$group <- factor(df1$group, levels = c(3:4, 1:2))

ggplot(df1, aes(x = Names, y = Values, color = group)) +
  geom_point() +
  facet_grid(~ group, scales = 'free_x') +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))
库(ggplot2)

df1$group感谢提供数据和代码,但有什么问题吗?你并不是在向团队表达你的意思。
color
参数已将组分开,是否要
facet\u wrap(~group)
?另外,您不需要
df=data.frame(df)
因为
read.table
输出一个data.frame,它是多余的。您想要
color=factor(group)吗
?@Rui Barradas抱歉,我希望这些点按照第三列进行分离,比如1个值先分离,2个值后分离。我不需要混合人口尝试你的绘图,但使用
aes(名称、值、颜色=因子(组))
并在末尾添加
方面(~group)
。我相信顺序是按组,而不是按值。无论如何,这个问题一点也不清楚,
facet\u wrap
de separations更好。@Alankine感谢ansr只是想问我是否想要3,4,1,2这样的顺序,我必须做什么。@Luckysardar,如果你使用fct\u reorder(名称,描述(组)),请参阅我回答中的注释。虽然您的订单很奇怪,但您的意图仍然不清楚,因为这会在视觉上造成混乱。但是,为了使组成为一个因子,并通过因子级别3,4,1,2,您可以基于此对名称进行fct_重新排序。