Hisse senedi çiftleri (çiftler ticareti) üzerinde biraz analiz yapmaya başladım ve burada bir grafik üretmek için yazdığım işlev (aşağıda listelenen).Xts nesnelerini kullanarak Nokta, Efsane ve Metin Ekleme
Tek bir arsada üç farklı çizgi çizmem gerekiyor. Listelediğim işlev, ne yapmak istediğimi yapar, ancak x ekseninde (zaman çizgisi) iyi bir özelleştirme yapmak istiyorsam biraz çalışma gerektirecektir. Olduğu gibi, x ekseninde yalnızca yıllar (10 yıllık veri) veya aylar (6 aylık veriler için), keneler için biçimlendirme olmaksızın yazdırır.
I
plot(xts-object-with-date-asset1-asset2, ...)
yerine
plot(date, asset2, ...)
kullanmak eğer, örneğin, bir XTS nesnesini kullanır ben ızgara ve kutu ile birlikte (hemen güzel bir şekilde biçimlendirilmiş x eksenini elde), ancak nokta(), text(), lines() gibi işlevleri kullanarak arsaya sonraki eklemeler başarısız olur. Sanırım, points.xts() ve text.xts(), yakında herhangi bir zamanda çıkmıyor.
Ben xts nesnelerinin rahatlığını isterim, ama ayrıca arsa üzerinde ince taneli bir kontrole ihtiyaç duyacağım. Peki iş akışım nasıl olmalı? Temel grafiklere bağlı kalmalı ve tüm kişiselleştirmeyi el ile yapmalı mıyım? Yoksa benim için xts çalışmamın bir yolu var mı?
Kafes ve ggplot2'nin farkındayım, ancak bunları şimdi kullanmak istemiyorum. İşte bahsettiğim fonksiyonudur (herhangi bir eleştiri/kod iyileştirilmesi için öneriler açığız) -
library(xts)
pairs.report <- function(asset1, asset2, dataset) {
#create data structures
attach(dataset)
datasetlm <- lm(formula = asset1 ~ asset2 + 0, data = dataset)
beta = coef(datasetlm)[1]
#add extra space to right margin of plot within frame
par(mar=c(5, 4, 4, 4) + 0.1)
# Plot first set of data and draw its axis
ylim <- c(min(asset2,asset1), max(asset2,asset1))
plot(date,
asset2,
axes=T,
ylim=ylim,
xlab="Timeline",
ylab="asset2 and asset1 equity",
type="l",
col="red",
main="Comparison between asset2 and asset1")
lines(date, asset1, col="green")
box()
grid(lwd=3)
# Allow a second plot on the same graph
par(new=T)
# Plot the second plot and
ylim <- c(min(asset1-beta*asset2), max(asset1-beta*asset2))
plot(date,
asset1-beta*asset2,
xlab="", ylab="",
ylim=ylim,
axes=F,
type="l",
col="blue")
#put axis scale on right
axis(side=4,
ylim=ylim,
col="blue",
col.axis="blue")
mtext("Residual Spread",side=4,col="blue",line=2.5)
abline(h=mean(asset1-beta*asset2))
}
Belki de bu konudaki kendi soruma cevabım da size yardımcı olur: http://stackoverflow.com/questions/7009711/how-to-get-years-from-a-time-series-index-when -the-under-time-series-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-of-en az 10 yıl yaymak için diğer zaman çizelgeleri almalısınız en azından. Tabii ki aynı da keneler ile çalışır. –
'plot.zoo' xts nesnelerle çalışır ve size daha iyi bir denetim sağlar. 'plot.zoo'da tonlarca örnek var. –