【问题标题】:R - ggtern + geom_interpolate_tern, why is the plot not smooth at the symmetry line (triangle height)?R - ggtern + geom_interpolate_tern,为什么绘图在对称线(三角形高度)处不平滑?
【发布时间】:2017-09-13 18:13:46
【问题描述】:

ggtern 输出

我正在尝试绘制以下数据

    > foo
    Resp         A         B         C
    1  1.629 0.3333333 0.3333333 0.3333333
    2  1.734 0.1666667 0.6666667 0.1666667
    3  1.957 0.0000000 1.0000000 0.0000000
    4  1.778 1.0000000 0.0000000 0.0000000
    5  1.682 0.6666667 0.1666667 0.1666667
    6  1.407 0.1666667 0.1666667 0.6666667
    7  1.589 0.0000000 0.5000000 0.5000000
    8  1.251 0.0000000 0.0000000 1.0000000
    9  1.774 0.5000000 0.5000000 0.0000000
    10 1.940 0.5000000 0.0000000 0.5000000
    > 

使用

    ggtern() +
     geom_interpolate_tern(
     data = foo,
     mapping = aes(y = A,x = B,z = C,value=Resp),method='auto',base = "identity",n=200)

缺少平滑插值是我似乎无法摆脱对函数参数进行微调的原因。对于这个单纯形,我实际上有多个响应数组,它们都在输出中呈现不平滑。

我是否遗漏了有关使用 ggerggeom_interpolate_tern 进行插值的内容?

【问题讨论】:

    标签: r interpolation ggtern


    【解决方案1】:

    这是因为 R 在 Windows 上没有天生的抗锯齿功能。

    foo <- structure(list(Resp = c(1.629, 1.734, 1.957, 1.778, 1.682, 1.407, 
    1.589, 1.251, 1.774, 1.94), A = c(0.3333333, 0.1666667, 0, 1, 
    0.6666667, 0.1666667, 0, 0, 0.5, 0.5), B = c(0.3333333, 0.6666667, 
    1, 0, 0.1666667, 0.1666667, 0.5, 0, 0.5, 0), C = c(0.3333333, 
    0.1666667, 0, 0, 0.1666667, 0.6666667, 0.5, 1, 0, 0.5)), .Names = c("Resp", 
    "A", "B", "C"), class = "data.frame", row.names = c("1", "2", 
    "3", "4", "5", "6", "7", "8", "9", "10"))
    

    您可以通过使用不同的图形设备进行渲染来解决此问题。

    require(Cairo)
    require(ggplot2)
    require(ggtern)
    
    g1 <- ggtern() +
        geom_interpolate_tern(
        data = foo,
        mapping = aes(y = A,x = B,z = C,value=Resp),method='auto',base = "identity",n=200)
    
    
    ggsave("Tern.png", width=12, height=8, dpi = 300, type = "cairo-png")
    

    或作为 SVG

    #  note that you don't need Cairo to render the .svg
    ggsave("Tern.svg", width=12, height=8, dpi = 300)
    

    【讨论】:

    • 像 *.svg 这样的矢量图形文件会更好吗? ggsave 保存 svg 文件
    • @CPak 容易做到:ggsave(g1, "Tern.svg", width=12, height=8, dpi = 300)
    • 我建议您将您的评论添加到您的答案中。
    猜你喜欢
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多