我有一个像这样的data.frame (df1):
Size1 Size2 Sample1 0.32 0.44 Sample2 0.12 0.12 Sample3 0.22 0.11 Sample4 0.16 0.54 Sample5 0.78 0.23 Sample6 0.22 0.81 Sample7 0.98 0.09 ..... .... ...
其中示例*是行名和注释data.frame (df2),如下所示:
Annotation Sample1 Blood Sample2 Blood Sample3 Blood Sample4 BM Sample5 BM Sample6 PBMC Sample7 PBMC ..... ....
其中示例*是行名
为了绘制数据,我使用了以下代码:
p= ggplot(df1,aes(df1 1,1,df1 1,2,label=rownames(Df1)+geom_point(色=因数(df1 2,1),大小= 5)+实验室(color= "Color_Code") +scale_colour_manual(引导=‘传奇’,名称=‘联想’,标签=c(“血”,"BM","PBMC"),值=c(“红色”、“蓝色”、“绿色”)
现在,是否有一种方法只向对应于BM的点添加纹理(例如,圆点内的水平线)?总共我有3000行和BM大约550个样本(行)。
提前谢谢你
发布于 2021-05-06 16:17:47
也许用不同的形状?
library(dplyr); library(ggplot2)
inner_join(df1 %>% rownames_to_column(),
df2 %>% rownames_to_column()) %>%
ggplot(aes(x = Size1, y = Size2, label = rowname, color = Annotation, shape = Annotation == "BM")) +
geom_point(size = 5)+ labs(color = "Color_Code", shape = "BM") +
scale_colour_manual(guide = 'legend',name = 'Legend',
labels = c("Blood", "BM", "PBMC"),
values = c("red", "blue", "green")) +
scale_shape_manual(values = c(16,13),
labels = c("No","Yes"))

数据:
df1 <- structure(list(Size1 = c(0.32, 0.12, 0.22, 0.16, 0.78, 0.22, 0.98), Size2 = c(0.44, 0.12, 0.11, 0.54, 0.23, 0.81, 0.09)), class = "data.frame", row.names = c("Sample1", "Sample2", "Sample3", "Sample4", "Sample5", "Sample6", "Sample7"))
df2 <- structure(list(Annotation = c("Blood", "Blood", "Blood", "BM", "BM", "PBMC", "PBMC")), row.names = c("Sample1", "Sample2", "Sample3", "Sample4", "Sample5", "Sample6", "Sample7"), class = "data.frame")https://stackoverflow.com/questions/67421791
复制相似问题