2016-11-24 5 views
1

私はパッケージfdcu.matrix機能を使用してhydroTSM、と流れの継続時間曲線をプロットしようとしています。残念ながら私はy軸の長さを増減することはできません。私はイル= c(lownumber、highnumber)で試しました。fdcu YLimプロパティは、プロットパッケージでは動作しません:hydroTSM - logaritmic y軸

これはうまくいきませんでしたが、私はそれを関数として実行して調整できるように、Rにパッケージを貼り付けてコピーしようとしました...しかし、残念なことにfdcu.matrixはrequireハイドロTSM)

https://github.com/cran/hydroTSM/blob/master/R/fdcu.Rで入手可能)

どのように私は手動または自動でdatarangeにYLimプロパティを調整することができますか..?

この私のデータマトリックスの一部:

dput(m.fdc01 [1:20,1:5])

構造(C(1、2、3、4、5 、6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,6.45,6.45,6.45,6.32,6.32,6.529, 7.09、3.8 、8.015、8.277、9.361、10.41、10.705、9.548、8.811、 9.176,8.631,8.542,8.365,8.189,8.102,7.588,7.489,7.254,7.09,7.008,6.927,6.847,6.767,6.668,7.6687,6.687 、6.687、 、6.847、6.927、1.008、6.927、7.09、7.758、8.277、7 929、7.843、 7.673,7.588,7.588,7.588,7.588,7.588,7.42,7.42,8.811, 9.927,8.631,8.189,7.673,7.42,7.254,7.008,7.008,17.397, NA、NA、NA、 NA、NA、NA、NA、NA、NA、NA、 NA、16.782,15.82).Dim = c(20L、5L)、.Dimnames = list(NULL 、 C( "DAYOFYEAR"、 "1970"、 "1971"、 "1972"、 "1973")))

# Plot with multiple flow duration curves & legend: 

require(hydroTSM) 
fdcu.matrix(m.fdc01[,-1], lband=m.fdc01[,-1], uband=m.fdc01[,-1], sim=m.fdc[,-1], plot=TRUE, 
     main ="FDC station 1LA04:1970-1978", xlab="% Time flow equalled or exceeded", 
     ylab="Q, [m3/s]", ylim=c(1,50),yat=c(0.01,0.02,0.05, 0.1,0.2,0.5, 1,2,5,10,20,50,100), 
     bands.col = "white", col=col_matsel, lwd=mat_lwd,leg.txt="", 
     leg.cex=0.5,leg.pos="auto",cex.axis=1,thr.shw=FALSE) 
legend("bottomleft",legendtextsel,col=col_matsel, lwd=4, y.intersp=1,bty="n",cex=1) 

enter image description here

答えて

1

私は、これはバグであると感じています。私は開発者に連絡することをお勧めします。 fdcu.matrix()がアルゴリズムでfdcu()を使用する場合、fdcu.matrix()ylimの情報をfdcu()に与えません。修正コードはfdcu.matrix()にすることができます。元のコードをコピーして1つの用語を削除するだけです。

調製
fdcu.matrix実行し、出力をコピー(すなわち、元のコード)。

あなたの関数を作る(ほぼすべてが貼り付けられます)
fdcu.matrix2 <- ""paste""と引数、ylimを削除します。参照

fdcu.matrix2 <- 
function (x, lband, uband, sim, lQ.thr = 0.7, hQ.thr = 0.2, plot = TRUE, 
    log = "y", main = "Flow Duration Curve", xlab = "% Time flow equalled or exceeded", 
    ylab = "Q, [m3/s]", ylim, yat = c(0.01, 0.1, 1), xat = c(0.01, ... 
         ^^^^^ delete!! 
例えば
require(hydroTSM) 

fdcu.matrix2(m.fdc01[,-1], lband=m.fdc01[,-1], uband=m.fdc01[,-1], sim=m.fdc01[,-1], 
     plot=TRUE, main ="fdcu.matrix2_test", xlab="xlab", ylab="Q, [m3/s]", 
     ylim=c(1,50), yat=c(0.01,0.02,0.05, 0.1,0.2,0.5, 1,2,5,10,20,50), 
     bands.col="white", leg.txt="", leg.cex=0.5, leg.pos="auto", 
     cex.axis=0.7, thr.shw=FALSE) 

    # [note] yat and pretty(ylim) are ylabels 

    # [note2 (edited)] 
    # when log = "y", ylim[1] is disregarded and 0.01 is used instead of it. 

enter image description here

ため

関連する問題