ggplot散点图和线条

Posted

技术标签:

【中文标题】ggplot散点图和线条【英文标题】:ggplot scatterplot and lines 【发布时间】:2018-08-30 09:06:44 【问题描述】:

我有两个人的一些生物学数据,我使用 R 作为散点图使用 ggplot 绘制它,如下所示:

p1<-ggplot(data, aes(meth_matrix$sample1, meth_matrix$sample3)) +
  geom_point() +
  theme_minimal()

效果很好,但我想在其中添加线条:将散点图分成两半的 abline:

p1  + geom_abline(color="blue")

我的问题是:如何绘制两条平行于对角线的红线(y 截距为 0.2,斜率与蓝线相同)??

另外:如何使用 ggplot 在相似的散点图中(看起来像水平散点图)绘制两个样本的差异?现在我只能用这样的情节来做到这一点:

dif_samples<-meth_matrix$sample1- meth_matrix$sample3
plot(dif_samples, main="difference", 
     xlab="CpGs ", ylab="Methylation ", pch=19)

(我也想添加水平蓝线和与蓝线平行的红线)

请帮忙!!!

非常感谢。

【问题讨论】:

【参考方案1】:

您可以在geom_abline() 函数中指定斜率和截距。我用ggplot2自带的iris数据集来说明:

# I'll use the iris dataset. I normalise by dividing the variables by their max so that
# a line through the origin will be visible
library(ggplot2)
p1 <- ggplot(iris, aes(Sepal.Length/max(Sepal.Length), Sepal.Width/max(Sepal.Width))) + 
  geom_point() + theme_minimal()

# Draw lines by specifying their slopes and intercepts. since all lines
# share a slope I just give one insted of a vector of slopes
p1 + geom_abline(intercept = c(0, .2, -.2), slope = 1,  
                 color = c("blue", "red", "red"))

我不太清楚你想要第二个情节的确切内容,但你可以直接在对ggplot() 的调用中绘制差异,并且可以使用geom_hline() 添加水平线:

# Now lets plot the difference between sepal length and width
# for each observation

p2 <- ggplot(iris, aes(x = 1:nrow(iris), 
                       y = (Sepal.Length - Sepal.Width) )) + 
  geom_point() + theme_minimal()

# we'll add horizontal lines -- you can pick values that make sense for your problem
p2 + geom_hline(yintercept = c(3, 3.2, 2.8),  
                 color = c("blue", "red", "red"))

由reprex package (v0.2.0) 于 2018 年 3 月 21 日创建。

【讨论】:

非常感谢!这正是我想做的

以上是关于ggplot散点图和线条的主要内容,如果未能解决你的问题,请参考以下文章

Fig4-a ggplot2绘制箱线图叠加散点图2020-12-14

一张图绘制多组散点图和折线图

在一张图表ggplot R上结合散点图、箱线图和线性回归线

R语言ggplot2可视化基本散点图(设置X轴使用对数坐标)并把成对的数据点用线条(line)连接起来自定义配置线条颜色(Connecting Paired Points with lines)

R语言可视化:散点图散点图和折线图(line charts)3D散点图旋转3D散点图气泡图corrgram包可视化相关性矩阵马赛克图( Mosaic plots)hexbin密度图

Matplotlib 散点图和颜色图的问题