我有一个我在R中从数据集中生成的折线图,但我现在希望能够在每小时读取放电值,以便我可以将这些添加到另一个数据集供以后使用。
如您所见,图表中只有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内完成吗?
由于
答案 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