自动从R

时间:2015-10-18 22:16:41

标签: r linegraph

我有一个我在R中从数据集中生成的折线图,但我现在希望能够在每小时读取放电值,以便我可以将这些添加到另一个数据集供以后使用。

Hydrograph: PlotSyntheticUnitHydrograph(1.606,0.6509467,4.04712)

如您所见,图表中只有3个值用于放电(Y轴):0,1.606,0。

X轴值对应于给定的Y轴值:0,0.65和0.

我现在需要获得小时0,1,2,3,4(约0,1.4,0.97,0.48,0)的 Y轴值,并自动生成一个列表价值观。

我正在使用自定义函数生成图表:

PlotSyntheticUnitHydrograph <- function(Qp,Tp,Tb) {

  dataPlotsX <- c(0,Tp,Tb)
  dataPlotsY <- c(0,Qp,0)

  yRange <- range(0,(c(0,Qp)))

  plot(dataPlotsX,dataPlotsY, type="o", col="blue", ylim=yRange, ann=FALSE)
  title(xlab="Time (hours)", col.lab="blue")
  title(ylab="Discharge (m^3/s per 10mm)", col.lab="blue")

}

R代码运行函数以生成此图

PlotSyntheticUnitHydrograph(1.606,0.6509467,4.04712,5)

供参考:

  • Qp =峰值放电(图中的Y轴峰值)

  • Tp =峰值放电时间

  • Tb =基准时间;从峰值放电减少到0(4.04 在这种情况下的小时)

这可以在R内完成吗?

由于

1 个答案:

答案 0 :(得分:3)

目前尚不清楚情节本身与这个问题有什么关系。相反,你有一个在几个点上定义的函数,并且你想插入它的值。为此,有一个函数approx将采用原始函数并在一组点上返回线性插值。

x <- c(0, .6509467, 4.04712)
y <- c(0, 1.606, 0)

然后我们可以做

> approx(x, y, 1:4)
$x
[1] 1 2 3 4

$y
[1] 1.44093787 0.96805270 0.49516752 0.02228235