在ggplot2的geom_point中使用重新排序功能

时间:2019-05-24 16:27:04

标签: r ggplot2

R的初学者,这是我的初学者问题:我想知道如何在geom_point中使用重新排序功能

如果我运行我的代码(如下),该图将根据“ Split_time”列中第一个数字的数字顺序1,2,3,5排列x轴,而不是我想要的顺序:{{ 1}}。

这里合适的更改是什么?

这是我的数据集:

m_5,m_10,m_20,m_30

代码:

Group Split_time ES 
Heavy m_5 -0.753006245 
Heavy m_10 -0.946046493 
Heavy m_20 -0.766883256
 Heavy m_30 -0.6175288 
Optimal m_5 -1.041742539 
Optimal m_10 -1.253699539
 Optimal m_20 -1.153807339
 Optimal m_30 -1.179895776 
Control m_5 -0.503250366 
Control m_10 -0.476303945 
Control m_20 -0.543155436
 Control m_30 -0.54148328

1 个答案:

答案 0 :(得分:0)

这是因为该列是字符类型,并且在对字符进行排序时,“ 1”位于“ 5”之前(因此,“ m_10”位于“ m_5”之前)。

R中用于分类变量的数据类型称为“因子”。进一步了解https://www.stat.berkeley.edu/~s133/factors.htmlhttps://www.rdocumentation.org/packages/base/versions/3.6.0/topics/factor

根据您的情况,您可以将Split_time转换为一个因数,然后按照所需的顺序手动指定级别。

df$Split_time = factor(df$Split_time, levels = c("m_5", "m_10", "m_20", "m_30"))

一旦这样做,ggplot还将根据其水平对因子进行排序,其中m_5在m_10之前