我想把组织做成不同的 colored颜色 和形状,比如心脏是紫色的正方形,肝脏是绿色的三角形,肺是橙色的钻石.此外,我也喜欢让治疗是不同的形状,特别是封闭或开放的形状.因此,控制心将是一个开放的紫色正方形.我有困难,因为我希望不同的形状参数适用于两个不同的变量.下面是可重现的代码以实现下面的散点图.如有任何指导,将不胜感激!

library(tidyverse)
ex <- data.frame(tissue=rep(c('lung','heart', 'liver'),each=10),
                 treatment=rep(rep(c('smoking','control'),5),each=3),
                 value1=rnorm(30) + rep(c(3,1,4,2,5),each=6),
                  value2=rnorm(30) + rep(c(30,11,43,21,15), each = 6))

ggplot(ex, aes(value1, value2)) +
  geom_point(size = 2, aes(col = tissue, shape = treatment))+
  scale_color_manual(values = c("#7030a0", "#548235", "#c55a11")) +
  scale_shape_manual(values = c(21, 19))

Example PCA plot

推荐答案

由于你有两层变量,我建议使用interaction()来创建它们的组合,然后相应地设置比例/图例值.

library(ggplot2)

ggplot(ex, aes(value1, value2)) +
  geom_point(size = 2, aes(col = interaction(tissue, treatment), shape = interaction(tissue, treatment))) +
  scale_color_manual(values = c("heart.control" = "#7030a0", 
                                "heart.smoking" = "#7030a0",
                                "liver.control" = "#548235", 
                                "liver.smoking" = "#548235", 
                                "lung.control" = "#c55a11",
                                "lung.smoking" = "#c55a11"),
                     labels = c("heart", "liver", "lung"),
                     breaks = c("heart.control", "liver.control", "lung.control")) +
  scale_shape_manual(values = c("heart.control" = 15, 
                                "heart.smoking" = 22,
                                "liver.control" = 17, 
                                "liver.smoking" = 24, 
                                "lung.control" = 18,
                                "lung.smoking" = 23),
                     labels = c("control", "treatment"),
                     breaks = c("heart.control", "heart.smoking")) +
  labs(color = "Tissue", shape = "treatment") +
  guides(guides(colour = guide_legend(override.aes = list(fill = c("#7030a0", "#548235", "#c55a11"), shape = c(22, 24, 23)))))

R相关问答推荐

如何使用R中的dhrr函数将李克特量表的因子列从长转换为宽?

抖动点与嵌套类别变量箱形图的位置不对齐

如何计算R数据集中每个女性的子元素数量?

从R导出全局环境中的所有sf(numrames)对象

在"gt"表中添加第二个"groupname_col",而不连接列值

删除列表中存储的数据帧内和数据帧之间的重复行

在for循环中转换rabrame

在R中使用数据集名称

汇总数据表中两个特定列条目的值

条形图和在Ploly中悬停的问题

用约翰逊分布进行均值比较

如何在R库GoogleDrive中完全删除预先授权的Google帐户?

如何根据数据帧中的值从该数据帧中提取值?

删除数据帧中特定行号之间的每第三行和第四行

将多个列合并为一个列的有效方法是什么?

如何根据未知数的多列排除重复行

判断函数未加载R中的库

通过R:文件名未正确写入[已解决]将.nc文件转换和导出为.tif文件

将CSV转换为R中的自定义JSON格式

如何在一种 colored颜色 中设置数值变量的 colored颜色 和高于阈值的 colored颜色 点?