代码之家  ›  专栏  ›  技术社区  ›  santoku

如何在R中绘制变半径的圆弧图?

  •  2
  • santoku  · 技术社区  · 8 年前

    弧线图(如ggraph或arcdiagram)有多个R包,但如果有多个不同性质的连接,它将显示为相同半径的重叠弧,连接相同的原点和目标。是否可以用不同半径的圆弧表示不同的类别?类似于这个粗略的图表?谢谢 enter image description here

    1 回复  |  直到 8 年前
        1
  •  2
  •   Julius Vainora    8 年前

    我们可以使用 ggplot2 为此。在中定义终点 df

    library(ggplot2)
    df <- data.frame(x1 = 2, x2 = 3, y1 = 21, y2 = 15)
    

    然后我们使用 geom_curve . 看来我们不能使用 curvature 作为美学的参数,但是 lapply 允许处理该问题:

    ggplot(data = df, aes(x = x1, y = y1, xend = x2, yend = y2)) + 
      lapply(-5:5 / 10, function(cu) geom_curve(curvature = cu)) + theme_bw()
    

    enter image description here

    为了得到多个对称弧,我使用 曲率 定义为

    给出曲率量的数值。负值 生成左侧曲线,正值生成右侧曲线, 零产生一条直线。

    推荐文章