【问题标题】:Level plot / contour plot for x y z datax y z 数据的水平图/等高线图
【发布时间】:2020-12-07 12:09:20
【问题描述】:

我正在尝试重现下图。 Z 是 X 和 Y 的函数。 该图显示了 3 个数据点(白点),以及显示 x 和 y 任意组合的 z 的所有可能值的等高线。

这是我目前所拥有的:

funct <- function(x,y) sqrt((1-x)^2+(1-y)^2)
df <- data.frame(x = c(0.3, 0.6, 0.8), 
                 y = c(0.7, 0.4, 0.9), 
                 z = funct(x,y))

grid <- expand.grid(x = seq(0,1,0.01), y = seq(0,1,0.01))

ggplot(grid, aes(x, y, z = funct(x,y))) +  
  geom_contour() 

所以我已经设法用等高线绘制了一个网格,但仍然丢失:

  • 如何将 3 个数据点添加到该网格中
  • 如何为等高线着色并添加图例

如果有人指出我正确的方向,那就太好了!

谢谢,莉娜

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    你可以试试:

    ggplot(grid, aes(x, y, z = funct(x,y))) +  
      geom_contour_filled(color = "black") +
      scale_fill_manual(values = c("#000000", "#5F0000", "#BF0000", "#FF1F00", 
                                   "#FF7F00", "#FFDF00", "#FFFF3F", "#FFFF9F")) +
      geom_point(data = df, shape = 21, size = 3, fill = "white",
                 color = "dodgerblue")
    

    【讨论】:

    • 了不起的亚当,非常感谢!尽管进行了一些搜索,但我还没有遇到“geom_contour_filled”函数。
    猜你喜欢
    • 2015-01-16
    • 2021-09-25
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    相关资源
    最近更新 更多