【问题标题】:Drawing polygon with Rstudio: error with boundaries使用 Rstudio 绘制多边形:边界错误
【发布时间】:2019-03-02 04:13:31
【问题描述】:

我正在尝试制作一个多边形,我需要将曲线左侧的整个区域填充颜色。

但我收到以下错误。

我认为边界(或坐标?)有问题,但我不知道如何才能使它正确。 这是我的代码:

    > head(sd_10_20)
  row  w         sd
1   1 26 0.59090909
2   2 12 0.27272727
3   3  6 0.13636364
4   4  4 0.09090909
5   5  4 0.09090909
6   6  4 0.09090909

 plot(sd_10_20$sd, sd_10_20$row, ylim = rev(range(50,510)), col='black', type='l', ylab='tiefe [mm]', xlab='surface density [-]')
polygon(c(sd_10_20$sd[1],sd_10_20$sd,sd_10_20$sd[length(sd_10_20$sd)]),c(50,sd_10_20$row,510),col='darkolivegreen', border = NA, ylim = rev(range(50,510)))

【问题讨论】:

  • 如果答案有用并回答了您的问题,请点赞并将其标记为正确。

标签: r plot polygon


【解决方案1】:

这是因为您使用不正确的起点和终点绘制多边形。对于polygon,假设您正在绘制一个形状而没有举起铅笔。您的起点和终点已连接,x 值和线条内的区域被着色。

因此,要为您的点下方的区域着色,任何<x,您需要最小y、最大y 和图表外部的点(因为0 是您的最小值,请将其设置为-1 看看是否可行)到你所有的 x 值。因此,使用下面发布的数据,c(-1,sd_10_20$foo_sd,-1) 代表您的 x 值,c(min(sd_10_20$foo_row),sd_10_20$foo_row,max(sd_10_20$foo_row)) 代表您的 y 值。

sd_10_20 <- data.frame(foo_row = c(1:500), foo_w = c(runif(500, 1, 26)), foo_sd = c(runif(500, 0, 1.4)))

plot(sd_10_20$foo_sd, sd_10_20$foo_row, ylim = rev(range(50,510)), col='black', type='l', ylab='tiefe [mm]', xlab='surface density [-]')
polygon(c(-1,sd_10_20$foo_sd,-1),c(min(sd_10_20$foo_row),sd_10_20$foo_row,max(sd_10_20$foo_row)),col='darkolivegreen', border = NA, ylim = rev(range(50,510)))

【讨论】:

    猜你喜欢
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多