Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为R ggplot2中相同系数内的每个点显示不同符号_R_Ggplot2 - Fatal编程技术网

为R ggplot2中相同系数内的每个点显示不同符号

为R ggplot2中相同系数内的每个点显示不同符号,r,ggplot2,R,Ggplot2,我试图创建一个图来显示每个组内计算值的平均值(按因素组织),以及行业点本身。我成功地做到了这一点,但是所有的点都使用相同的符号。我希望每个因子中的每个点都有一个不同的符号,最好对每个因子使用相同顺序的相同点 下面是我正在制作的图形的示例版本,但是同一列中的所有点都使用相同的符号 我曾考虑过使用点的行号来定义符号形状,但我认为在默认的ggplot2包中只有25种不同的形状可用,我的实际数据有25个以上的点,而且我更希望在每列中使用相同的点,以保持图形的一致性 Mean_list <- dat

我试图创建一个图来显示每个组内计算值的平均值(按因素组织),以及行业点本身。我成功地做到了这一点,但是所有的点都使用相同的符号。我希望每个因子中的每个点都有一个不同的符号,最好对每个因子使用相同顺序的相同点

下面是我正在制作的图形的示例版本,但是同一列中的所有点都使用相同的符号

我曾考虑过使用点的行号来定义符号形状,但我认为在默认的
ggplot2
包中只有25种不同的形状可用,我的实际数据有25个以上的点,而且我更希望在每列中使用相同的点,以保持图形的一致性

Mean_list <- data.frame(Cells = factor(c("Celltype1", "Celltype2", "Celltype3", 
                        "Celltype4"), 
                        levels =c("Celltype1", "Celltype2", "Celltype3", "Celltype4")),
                        Mean = c(mean(c(1, 2, 3)), mean(c(5, 8, 4)), mean(c(9, 8 ,3)), 
                        mean(c(3, 6, 8, 5))))

values_list <- data.frame(Cells2 = rep(c("Celltype1", "Celltype2", "Celltype3", 
                         "Celltype4"), times = c(length(c(1, 2, 3)),
                         length(c(5, 8, 4)), length(c(9, 8 ,3)), 
                         length(c(3, 6, 8, 5)))), 
                         values =  c(1, 2, 3, 5, 8, 4, 9, 8, 3, 3, 6, 8, 5))

ggplot() + geom_col(data = Mean_list, aes(Cells, Mean, fill = Cells)) +
  geom_point(data = values_list, aes(Cells2, values)) 

Mean_list打印前,我们可以为单元格中的每一行指定一个数字:

values_list <- values_list %>% group_by(Cells2) %>% mutate(shape = factor(seq_along(values)))

ggplot() +
  geom_col(data = Mean_list, aes(Cells, Mean, fill = Cells)) +
  geom_point(data = values_list, aes(Cells2, values, shape = shape))
values\u list%group\u by(Cells2)%%>%mutate(形状=因子(沿(值)顺序)))
ggplot()+
几何坐标(数据=平均值列表,aes(单元格,平均值,填充=单元格))+
几何点(数据=值列表,aes(单元格2,值,形状=形状))

考虑到每一列中的点的数量,我会考虑用一个标签(例如AA-ZZ)来完全替换这些点。谢谢,这很好地为每个点得到不同的符号,但是我更希望符号与列表中的值的位置相关,而不是它的排名。i、 e.在上面的例子中,Celltypes1中的“1”、Celltypes2中的“5”、Celltypes3中的“9”和Celltypes4中的“3”都是相同的形状,而不管它们的值是多少。谢谢,这很有效!比没有dplyr包时我最初尝试做的要简单得多。