【发布时间】:2020-09-17 20:53:04
【问题描述】:
我有不同样本的 RNA 表达值数据集。我对它们应用了线性拟合和贝叶斯统计,然后针对“P.Value”绘制对数倍数变化(“LogFC”)以获得以下 ggplot。现在我想为“LogFC” 2 的值和“P.Value”
【问题讨论】:
标签: r ggplot2 cluster-computing
我有不同样本的 RNA 表达值数据集。我对它们应用了线性拟合和贝叶斯统计,然后针对“P.Value”绘制对数倍数变化(“LogFC”)以获得以下 ggplot。现在我想为“LogFC” 2 的值和“P.Value”
【问题讨论】:
标签: r ggplot2 cluster-computing
虽然您确实可以将数据子集绘制为图层,但您也可以将颜色美学设置为嵌套的 ifelse() 语句。你也会得到正确的传说。示例如下:
library(ggplot2)
set.seed(0)
df <- data.frame(
logFC = rt(10000, 10),
pvalue = runif(10000)
)
ggplot(df, aes(logFC, log10(pvalue))) +
geom_point(
aes(colour = ifelse(is.na(pvalue) | pvalue > 0.05 | abs(logFC) < 2, "n.s.",
ifelse(logFC >= 2, "Up", "Down")))
) +
scale_colour_manual(values = c("limegreen", "grey50", "dodgerblue"),
name = "Category") +
scale_y_continuous(trans = "reverse")
由reprex package (v0.3.0) 于 2020-09-17 创建
【讨论】:
您似乎为整个数据集使用了geom_point-plot。
解决您的问题的一种方法是添加带有子集的额外点层。
您还没有提供示例数据集,所以我使用了 iris 数据集。 我通过对数据集进行子集化并添加蓝色点来重新着色 Sepal.Length 的较小和较高值。 Sepal.Width 中的其他小值变为绿色。
将此代码转移到您的案例中。过滤您的数据集以获得所需的LogFC 和/或P.Value,并将这些数据集和颜色参数添加到其他geom_pointlayers。
ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width)) +
geom_point(color = "red") +
geom_point(data = iris[iris$Sepal.Length < 5 | iris$Sepal.Length > 7, ], color = "blue") +
geom_point(data = iris[iris$Sepal.Width < 3, ], color = "green")
【讨论】: