首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >群散点图

群散点图
EN

Stack Overflow用户
提问于 2018-02-16 02:08:53
回答 1查看 491关注 0票数 0

嗨,我想做一个分散图或点图的不同组。我可以让它工作在个别的绘图,但由于ggplot2需要坐标的x-轴。那就是我已经惹上麻烦了。这是我的结构:

代码语言:javascript
复制
# A tibble: 2 x 33
  gene_id     gene     N1    N2    N3    N4    N5    N6    N7    T1    T2    T3    T4
  <chr>       <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 ENSMUSG000… RNS     198   182   206   183   177   194   193   173   191   167   200
2 ENSMUSG000… RNS2    199   198   216   252   273   159   164   159   162   151   199
# ... with 20 more variables: T5 <dbl>, T6 <dbl>, T7 <dbl>, T8 <dbl>, T9 <dbl>,
#   T10 <dbl>, T11 <dbl>, T12 <dbl>, T13 <dbl>, T14 <dbl>, M1 <dbl>, M2 <dbl>,
#   M3 <dbl>, M4 <dbl>, M5 <dbl>, M6 <dbl>, M7 <dbl>, M8 <dbl>, M9 <dbl>, M10 <dbl>

我想先把所有的个体放在一起,然后把N,T和Ms组合在一起,用不同的颜色来描绘它们。我非常肯定,一旦绘图本身起作用,我就可以指定颜色。

代码语言:javascript
复制
ggplot(a, aes(y=a[,3],x=1))+
geom_point()

我从这种情况开始,在过程中非常低。

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-16 03:04:26

您需要将列名转换为变量。我使用你公布的数据,但我不确定你是否希望看到这样的情节

代码语言:javascript
复制
data <- read.csv('tabla.csv')
data

初始数据

代码语言:javascript
复制
 gene_id gene  N1  N2  N3  N4  N5  N6  N7  T1  T2  T3  T4
1 ENSMUSG000…  RNS 198 182 206 183 177 194 193 173 191 167 200
2 ENSMUSG000… RNS2 199 198 216 252 273 159 164 159 162 151 199

熔化数据

代码语言:javascript
复制
library(reshape)

newData <- melt(data, id=c("gene_id", "gene"))
newData

你会得到这样的数据框架

代码语言:javascript
复制
gene_id gene variable value
1  ENSMUSG000…  RNS       N1   198
2  ENSMUSG000… RNS2       N1   199
3  ENSMUSG000…  RNS       N2   182
4  ENSMUSG000… RNS2       N2   198
5  ENSMUSG000…  RNS       N3   206

创建一个具有每个组名称的新colum (N、T或M)

代码语言:javascript
复制
count = 0
for(value in newData$variable){

        # To get the group of each value

        if(startsWith(value, 'N')){

                group <- 'N'

        }else if(startsWith(value, 'T')){

                group <- 'T'

        }else if(startsWith(value, 'M')){

                group <- 'M'
        }

        # Storing the group name into a vector
        if(count == 0){

                vectorGroup <- group
        }else{

                vectorGroup <- c(vectorGroup, group)

        }

        count <- count + 1

}

newData$group <- vectorGroup

最后绘制散点图

代码语言:javascript
复制
library(ggplot2)

ggplot(newData, aes(x = gene, y = value, color= group)) + theme_minimal() + geom_point(width = 0.5) + scale_fill_brewer(palette = 'Paired') 

你会得到这样的情节

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48819146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档