1

私はデータセットを持っています

prices<- c(100,101,102,103,104,105,108,107,106,105,104,100,98,97,94,90,88,89,89,90,91,90,92,90,94,95,90,89,84,89,80,91,94,94,95,98,103,110,112,70,65)
date<- Sys.Date() -41:1
data<- xts(prices,date)
lineChart(data)

上記のコードに従って、目的の折れ線グラフを取得できます。ここで、チャート自体にデータレベルを表示するためにチャートが必要です。このために私は試しました

plot(date,prices,type="l")
textxy(date, prices, prices)

これで、折れ線グラフであり、データラベルが付いたグラフが表示されます。今私が今必要としているのは、ある期間の高値と安値のデータ ポイントをいくつかだけ表示するチャートです。私が必要とするチャートは http://img9.imageshack.us/img9/2573/aid8.pngのようになります

4

1 に答える 1

1

まずはデータを用意しましょう

prices<- c(100,101,102,103,104,105,108,107,106,105,104,100,98,97,94,90,88,89,89,90,91,90,92,90,94,95,90,89,84,89,80,91,94,94,95,98,103,110,112,70,65)
date<- Sys.Date() -41:1
library(quantmod)
data<- xts(prices,date)
colnames(data) <- "price"

次に、極大極小を見つけたいと思います。ZigZag オーバーレイを使用してグラフを滑らかにします

chart_Series(data)
data$n <- 1:nrow(data)
data$z <- ZigZag(data$price , change = 2 , percent = T)
add_TA(data$z , on = 1 ,col = 'red' , lty = 3 , type = 'l')
ex <- data[c(findPeaks(data$z) , findValleys(data$z)) - 1 , ]
add_TA(ex$z , on = 1 , col = 'red' , cex = 2 , type = 'p')

あとはラベルを追加するだけです

text(x = ex$n , y = (ex$z) * 0.99 , label = ex$price)

そして結果

ここに画像の説明を入力

于 2013-08-09T07:49:18.973 に答える