【问题标题】:ggplot2 + scatterplot + geom_pathggplot2 + 散点图 + geom_path
【发布时间】:2019-07-19 11:18:13
【问题描述】:

你知道如何获得 Jake Kaupp 在他的情节中实现的弯曲效果吗?

【问题讨论】:

    标签: r ggplot2 scatter-plot


    【解决方案1】:

    看起来是这样的:

    ggplot(full_data, aes(y = total_consumption_lbs, x = milk_production_lbs)) +
      geom_xspline2(aes(s_open = TRUE, s_shape = 0.5))
    

    geom_xspline2() 来自library(ggalt)

    但别问我,这是他的源代码:

    https://github.com/jkaupp/tidytuesdays/blob/master/2019/week5/R/analysis.R

    【讨论】:

    • 我试图找到 Jake Kaupp 的代码,但没有成功。您的帮助非常有益。
    【解决方案2】:

    这种方法看起来不像你的例子那么好,但它是一个开始,一些小技巧可能会让你走完剩下的路。

    首先,需要处理的一些数据:

    x <- seq(1:20)
    y <- jitter(x,amount=1.5)
    df <- data.frame(x,y)
    

    使用ggplot2 的方法是绘制一个跨度非常小的geom_smooth(如您所见,小到足以导致很多错误),然后在其顶部绘制带有白色边框的点。

    ggplot(df, aes(x,y)) + 
      geom_smooth(se=F, colour="black", span=0.15) +
      geom_point(fill="black", colour="white", shape=21, size=2.5) +
      theme_minimal()
    

    缺点:正如我上面提到的,你会看到很多关于黄土拟合中奇点的错误,因为跨度太小了。其次,您会注意到并非所有点都以直线为中心,这是有道理的,因为您使用的是黄土拟合直线。最后,似乎没有办法改变点周围线条的宽度,所以你最终会得到一个很细的白色边框。

    【讨论】:

    • 我的兴趣在于构建一个连接散点图,就像 Jake Kaupp 提出的那样。在上面的答案中,提供了这种可能性。无论如何,我非常感谢您的指导,以及我不知道的其他散点图选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2010-12-21
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    相关资源
    最近更新 更多