我有以下对象:
df <- structure(list(ID = c("ID1", "ID2", "ID3", "ID4"), `log2(FC)` = c(-0.233242394191256,
-0.594887873356282, -0.148130516718721, -0.261486186324127),
`-log10(P)` = c(1.3671239676232, 0.748621785436137, 1.36200497028613,
0.699204404214651)), row.names = c(NA, -4L), class = "data.frame")
> df
ID log2(FC) -log10(P)
1 ID1 -0.2332424 1.3671240
2 ID2 -0.5948879 0.7486218
3 ID3 -0.1481305 1.3620050
4 ID4 -0.2614862 0.6992044
我想在ggplot中绘制一个简单的图,用标记每个点-log10(P)
。一切都很好。但是,我想用y截距-0.25绘制一条水平线,并以与点相同的比例将其着色为颜色“ 10”。这可能吗?
f <- ggplot(df, aes(ID, `log2(FC)`, colour = `-log10(P)`)) +
geom_point(size = 5) +
scale_color_gradient(low="blue", high="red", limits = c(0, 15)) +
geom_hline(yintercept = -0.25, linetype = "dashed", colour = 10)
目前,该线条显示为黑色,但理想情况下,该线条将与这些点具有相同的色标:
您必须将颜色映射到色标。这可以通过传递aes(colour = 10)
给中的mapping
参数来完成geom_hline
。您还需要yintercept = -0.25
在aes
调用中添加,否则映射参数将被忽略。
library(ggplot2)
ggplot(df, aes(ID, `log2(FC)`, colour = `-log10(P)`)) +
geom_point(size = 5) +
scale_color_gradient(low = "blue", high = "red", limits = c(0, 15)) +
geom_hline(aes(colour = 10, yintercept = -0.25), linetype = "dashed", size = 2)
由reprex软件包(v0.3.0)创建于2020-08-17
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句