【问题标题】:filled contour plot in RR中的填充等高线图
【发布时间】:2015-02-16 18:44:44
【问题描述】:

我正在尝试在 R 中生成填充等高线图。我的数据标签 x 和 y 是长度为 20 的向量,我的 z 矩阵是 20 x 20。以下是我的代码,fill.contour 命令直接从r help(filled.contour) 文件,只是去掉了多余的参数:

x <- seq(1,5)
y <- seq(1,5)
cells <- c(1,4,9,16,25,1,4,9,16,25,1,4,9,16,25,1,4,9,16,25,1,4,9,16,25)
z <- matrix(cells,nrow=5,ncol=5,byrow=TRUE)
filled.contour(x,y,z,nlevels = 20,col = cm.colors(19))

【问题讨论】:

  • 如果指定color.palette,则无需提供col。如果这样做,col 给出的颜色矢量将覆盖color.palette。 (source)
  • @Pascal,好的,如果我不指定 col,那么我会得到一个有 20 个级别但只有 3 种颜色的图。我的目标是有 20 个关卡,有 19 种不同的颜色。如果我不指定 color.palette,但指定 col =...,那么显然我会收到关于未找到变量 color.palette 的相同错误消息。
  • 是的,color.palette 不是您可以直接调用的 R 函数。您可以使用one of these functions 创建向量col。或者使用[RColorBrewer](http://cran.r-project.org/web/packages/RColorBrewer/index.html) 包。
  • 请查看我的回答。
  • @Pascal OK,所以基于我尝试的那个页面:filled.contour(x,y,z,nlevels = 20,col=cm.colors(20)),它再次生成等高线图有 20 个级别和 3 种颜色的不同深浅,蓝色、白色和紫色。我想要完成的是 20 个级别,轮廓之间的每个级别有 19 种不同的颜色。

标签: r


【解决方案1】:

您必须删除col =color.palette(length(levels) - 1)。您必须知道,在 R 手册中,Usage 下的行仅显示可用的参数以及旁边的默认参数。这并不一定意味着您可以以完全相同的方式编写它。因此,如果您保留这些参数,它将自动采用那里规定的值。

对于示例,您应该查看 Examples 部分,该部分通常非常丰富。

编辑

要获得 19 种颜色,您必须编写

filled.contour(x,y,z,nlevels = 20,col =cm.colors(19))

cm.colors 是一个返回 n 种颜色的函数。 color.palette 不能为您做到这一点,因为它不是函数,而是填充的轮廓的参数。

【讨论】:

  • @Mark 你应该对你的问题写这个评论,而不是我的答案:)
  • @Mark 但很清楚为什么它不起作用,当您尝试使用不是函数的 color.palette(length(levels) - 1) 时,像 Pascal 我试图解释你。
猜你喜欢
  • 2018-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
相关资源
最近更新 更多