मैं स्टॉक (जोड़े ट्रेडिंग) के जोड़ों पर विश्लेषण का एक सा से शुरू होने वाले कर रहा हूँ और यहाँ है समारोह मैं एक ग्राफ (pairs.report - नीचे सूचीबद्ध) के उत्पादन के लिए लिखा था।स्थान जोड़ना, किंवदंतियों और XTS का उपयोग कर भूखंडों के लिए पाठ वस्तुओं
मैं एक ही प्लॉट में तीन अलग-अलग लाइनों साजिश की जरूरत है। जो फ़ंक्शन मैंने सूचीबद्ध किया है वह वह करता है जो मैं करना चाहता हूं, लेकिन यदि मैं एक्स-अक्ष (समय रेखा) में एक अच्छा अनुकूलन चाहता हूं तो यह थोड़ा सा काम करेगा। जैसा कि है, यह x-axis में केवल वर्षों (डेटा के 10 वर्षों के लिए) या महीनों (डेटा के 6 महीने के लिए) प्रिंट करता है, जिसमें टिक के लिए कोई स्वरूपण नहीं होता है।
अगर मैं एक XTS वस्तु, यानी उपयोग करते हैं, अगर मैं
plot(xts-object-with-date-asset1-asset2, ...)
बजाय
plot(date, asset2, ...)
का उपयोग मैं तुरंत (एक ठीक से स्वरूपित x- अक्ष मिल ग्रिड और बॉक्स के साथ), लेकिन प्वाइंट(), टेक्स्ट(), लाइन() जैसे फ़ंक्शंस का उपयोग करके साजिश के बाद के जोड़े विफल हो जाते हैं। मुझे लगता है कि points.xts() और text.xts() जल्द ही बाहर नहीं आ रहे हैं।
मैं XTS वस्तुओं की सुविधा चाहते हैं, लेकिन मैं अपने भूखंड पर एक ठीक बेहतर नियंत्रण की आवश्यकता होगी। तो मेरा काम-प्रवाह कैसा होना चाहिए? क्या मुझे बुनियादी ग्राफिक्स से चिपकना है और मैन्युअल रूप से सभी अनुकूलन करना है? या क्या कोई तरीका है कि मैं xts मेरे लिए काम कर सकता हूं?
मैं जाली और ggplot2 के बारे में पता कर रहा हूँ, लेकिन मैं अब उन्हें इस्तेमाल नहीं करना चाहती। यहाँ समारोह मैंने कहा है (किसी भी आलोचना/कोड के सुधार के लिए सुझाव का स्वागत है) -
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))
}
शायद इस धागे में अपने स्वयं के प्रश्न का मेरा जवाब आपको भी मदद करता है: http://stackoverflow.com/questions/7009711/how-to-get-years-from-a-time-series-index-when -इस-अंतर्निहित-समय श्रृंखला-है-की-मीटर कम से कम आप केवल 10 साल फैला अलावा अन्य timespans मिलना चाहिए। बेशक एक ही काम के साथ काम करता है। –
'plot.zoo' xts ऑब्जेक्ट्स के साथ काम करता है और आपको बहुत अधिक नियंत्रण देता है। 'plot.zoo' में कई उदाहरण हैं। –