我有一个数据框
> head(sample_data_df)
Gene_1 Gene_2 Gene_3 Gene_4 Gene_5
Sample_1 -1.1698306 1.2408295 1.42964624 -0.2323205 0.1669285
Sample_2 -0.6983788 -0.9224843 2.21307158 -0.3003344 -0.5299774
[...]
我融化了
sample_data_melt <- melt(sample_data_df)
variable value
1 Gene_1 -1.1698306
2 Gene_1 -0.6983788
并用
绘图ggplot(sample_data_melt, aes(x=variable,y=value)) +
geom_point(position = "jitter")
我想将所有样本的alpha(sample_data_df
中的行)更改为0.5,除了一个样本。我知道我可以通过制作像
alpha <- rep(0.1,5005)
alpha[seq(0, 5005, by= 1001)] <- 1
ggplot(sample_data_melt, aes(x=variable,y=value)) +
geom_point(position = "jitter",alpha = alpha)
但如何将一个特定样本设置为alpha 1?
答案 0 :(得分:2)
似乎行名称中有价值的信息会在您融化时丢失(样本编号)。我建议保持这个:
sample_data_df$sample = row.names(sample_data_df)
sample_data_melt = melt(sample_data_df, id.vars = "sample")
然后,您可以为要完全不透明的样本设置指标
sample_data_melt$alpha = ifelse(sample_data_melt$sample == "Sample_2", "Sample 2", "Other")
并将其映射到你的情节中的alpha:
ggplot(sample_data_melt, aes(x=variable,y=value)) +
geom_point(aes(alpha = alpha), position = "jitter") +
scale_alpha_manual(values = c(0.5, 1))
(未经测试,因为您的数据不可重复共享,如果您需要测试答案,请使用dput()
或模拟数据。)