我在R中有一个矩阵,如下面的
H520KOR1 H520KOR2 H5202GyPHR1 H5202GyPHR2
ILMN_1702609 5.916239 6.068699 4.910235 4.983025
ILMN_1762631 5.490704 5.454779 4.573977 4.628981
ILMN_2193175 5.730220 5.726268 6.222486 6.273563
ILMN_3310451 4.955594 5.007212 4.423170 4.333526
我想以下列方式绘制
我在powerpoint中画了这张照片。我尝试了几种方法,但我遗漏了一些东西。任何帮助将不胜感激。
修改
我从矩阵和dput()
> dput(dat)
structure(c(5.91623892229345, 5.49070424526676, 5.73021963287428,
4.9555939015656, 7.34200299329158, 4.49057379554289, 5.17555122512255,
5.6535332613054, 4.96143970172796, 4.4791600551366, 6.06869857120224,
5.45477925441301, 5.72626774546258, 5.00721151456707, 7.33658261931523,
4.36058760303988, 5.13085555870237, 5.77523892720755, 4.96844107374241,
4.41926414134707, 4.91023457951491, 4.57397741940793, 6.22248596066649,
4.42317017555403, 7.95776070495557, 5.13499805485839, 4.39694778946656,
4.80648887200906, 4.44717629932841, 5.25723605338541, 4.98302491117088,
4.62898140897605, 6.27356272326665, 4.33352596469113, 7.9391551372836,
5.13491596111887, 4.48130179704286, 4.90950199548828, 4.43674075246716,
5.13877204607323), .Dim = c(10L, 4L), .Dimnames = list(c("ILMN_1702609",
"ILMN_1762631", "ILMN_2193175", "ILMN_3310451", "ILMN_1808219",
"ILMN_1703280", "ILMN_1705466", "ILMN_2135232", "ILMN_1839994",
"ILMN_3234823"), c("H520KOR1", "H520KOR2", "H5202GyPHR1", "H5202GyPHR2"
)))
是否也可以将两个重复的数据绘制成一行,给定一个data.frame,如下所示
H520KOR1 control
H520KOR2 control
H5202GyPHR1 treated
H5202GyPHR2 treated
这会将绘图更改为跟随(不是为每行生成单独的绘图,我觉得将所有行的信息包含在一个绘图中会更好,这将进一步简化解释)。我只是在学习ggplot2的可能性。这有助于实现目标。谢谢。
答案 0 :(得分:0)
library(tidyverse)
read.table(text="expression H520KOR1 H520KOR2 H5202GyPHR1 H5202GyPHR2
ILMN_1702609 5.916239 6.068699 4.910235 4.983025
ILMN_1762631 5.490704 5.454779 4.573977 4.628981
ILMN_2193175 5.730220 5.726268 6.222486 6.273563
ILMN_3310451 4.955594 5.007212 4.423170 4.333526",
stringsAsFactors=FALSE, header=TRUE) -> df
对于ggplot2,这将更好地作为" long"数据框:
df <- gather(df, category, value, -expression)
你可以将它们全部绘制在一个上(尽管有60个,颜色真的不会起作用):
ggplot(df, aes(x=category, y=value, color=expression)) +
geom_point(size=3) +
scale_color_discrete(name=NULL) +
theme(legend.position="top")
你可以将它们面对面(再次,如果你真的有60个,我会删除颜色):
ggplot(df, aes(x=category, y=value, color=expression)) +
geom_point(size=3) +
facet_wrap(~expression) +
theme(legend.position="none")
我们不知道您有什么样式或标签要求,因此这是有限信息中最好的。
如果你真的有一个矩阵与一个数据框,那么你需要先转换它并确保行名称成为一个列。 dput()
您的数据有助于我们说明如何执行此操作(如果需要)。