2017-02-25 51 views
-2

是否有一种简单的方法可以用基R来做分类散点图?带有基R的分类散点图

我想在X轴标签为低于3个标签。谢谢!

SW-SE  North-SW North-SE 
0.0322791 0.0466558 0.05533 
0.0300673 0.0503937 0.0590444 
0.0302151 0.0562131 0.0612469 
0.0242698 0.068037 0.0756064 
0.0315696 0.0440456 0.0449465 
0.0273471 0.0485332 0.048216 
0.0249796 0.055911 0.0529762 
0.0219699 0.0663013 0.0651523 
0.0173046 0.0467941 0.049092 
0.0224143 0.0507807 0.0526732 
0.0245645 0.0554949 0.0567835 
0.020624 0.0691155 0.0705431 
0.0208465 0.0340491 0.0525786 
0.0160655 0.0382029 0.0561054 
0.0236193 0.0441057 0.0597504 
0.0280541 0.0561134 0.0741485 
0.0242048 0.0420126 
0.0243629 0.0459014 
0.0192736 0.0476303 
0.0268329 0.0620177 
+0

欢迎使用stackoverflow。不幸的是,你所问的不是很清楚。请考虑阅读http://stackoverflow.com/questions/how-to-ask和http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – lbusett

+0

使两列,一个用于类别,一个用于数量,以及制造和对象:pairwise = fst $ site_pair Fst = fst $ fst ##然后这个: p < - ggplot(fst,aes(factor ),FST)) p + geom_boxplot()+ geom_jitter()+ theme_bw()+ scale_y_continuous(场所= C(0,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08))+实验室(X = “横断面”,y =表达式(F [ST]))+主题(panel.grid.major = element_blank(),panel.grid.minor = element_blank(), panel.background = element_blank(),axis.line = element_line(color =“black”)) –

回答

0

我认为你是在寻找像抖动散点图那样的东西。我个人只喜欢这些与他们所以这里背后的箱线图,它是:

df = read.table(text = 
    "SW-SE  North-SW North-SE 
    0.0322791 0.0466558 0.05533 
    0.0300673 0.0503937 0.0590444 
    0.0302151 0.0562131 0.0612469 
    0.0242698 0.068037 0.0756064 
    0.0315696 0.0440456 0.0449465 
    0.0273471 0.0485332 0.048216 
    0.0249796 0.055911 0.0529762 
    0.0219699 0.0663013 0.0651523 
    0.0173046 0.0467941 0.049092 
    0.0224143 0.0507807 0.0526732 
    0.0245645 0.0554949 0.0567835 
    0.020624 0.0691155 0.0705431 
    0.0208465 0.0340491 0.0525786 
    0.0160655 0.0382029 0.0561054 
    0.0236193 0.0441057 0.0597504 
    0.0280541 0.0561134 0.0741485 
    0.0242048 0.0420126 NA 
    0.0243629 0.0459014 NA 
    0.0192736 0.0476303 NA 
    0.0268329 0.0620177 NA", 
    header = TRUE 
) 

jitter = 0.1 
boxplot(df, at = c(1, 2, 3)) 
points(runif(20)*jitter - jitter/2 + 1, df$SW.SE) 
points(runif(20)*jitter - jitter/2 + 2, df$North.SW) 
points(runif(20)*jitter - jitter/2 + 3, df$North.SE) 

有效boxplot完成所有设置,可以控制与at参数,它也可以很容易地与后来的排队抖动分散的位置points这就像plot,但它增加了现有的数字。

jittered boxplot

原因抖动重要的是,这样如果您有多个(近)相同的y值它们被轻微抖动分离,可以更容易区分它们。

我更喜欢抖动背后的箱线图是这样我就可以更容易地看到分布比精神上寻找中位数和四分位数的原因。

+0

如果我想添加三列,North,SW和SE,该怎么办?箱线图(DF,在= C(1,2,3,4,5,6)) 点(runif(20)*抖动 - 抖动/ 2 + 1,DF $ SE) 点(runif(20)*抖动 - 抖动/ 2 + 2,DF $ SW) 点(runif(20)*抖动 - 抖动/ 2 + 3,DF $北) 点(runif(20)*抖动 - 抖动/ 2 + 4,DF $'北SW') 点(runif(20)*抖动 - 抖动/ 2 + 5,DF $'北SE') 点(runif(20)*抖动 - 抖动/ 2 + 6,DF $'SW- SE')给我这个:xy.coords(x,y)中的错误:'x'和'y'长度不同 –

+0

我不知道你的新'df'看起来像什么,但应该提供'df $ SW '和其他人一样长。我硬编码'点(runif(20)...',但它应该是'points(runif(nrow(df))...'。你看到的错误看起来像点()'接收两个参数不同的长度。 – vincentmajor