2017-07-14 4 views
3

Les parcelles de script suivantes 2 graphiques côte à côte:côté par des parcelles de côté pour PerformanceAnalytics en R

require(xts) 
par(mfrow=c(1,2)) 
XTS1 <- structure(c(12, 7, 7, 22, 24, 30, 26, 23, 27, 30), .indexCLASS = c("POSIXct", "POSIXt"), .indexTZ = "", tclass = c("POSIXct", "POSIXt"), tzone = "", class = c("xts", "zoo"), .CLASS = structure("double", class = "CLASS"), formattable = structure(list(formatter = "formatC", format = structure(list(format = "f", digits = 2), .Names = c("format", "digits")), preproc = "percent_preproc", postproc = "percent_postproc"), .Names = c("formatter", "format", "preproc", "postproc")), index = structure(c(1413981900, 1413982800, 1413983700, 1413984600, 1413985500, 1413986400, 1413987300, 1413988200, 1413989100, 1413990000), tzone = "", tclass = c("POSIXct", "POSIXt")), .Dim = c(10L, 1L)) 
XTS2 <- XTS1^0.2 
plot(XTS1) 
plot(XTS2) 

Le script suivant ne réussit pas à tracer 2 graphiques côte à côte:

require(PerformanceAnalytics) 
require(xts) 
par(mfrow=c(1,2)) 
XTS1 <- structure(c(12, 7, 7, 22, 24, 30, 26, 23, 27, 30), .indexCLASS = c("POSIXct", "POSIXt"), .indexTZ = "", tclass = c("POSIXct", "POSIXt"), tzone = "", class = c("xts", "zoo"), .CLASS = structure("double", class = "CLASS"), formattable = structure(list(formatter = "formatC", format = structure(list(format = "f", digits = 2), .Names = c("format", "digits")), preproc = "percent_preproc", postproc = "percent_postproc"), .Names = c("formatter", "format", "preproc", "postproc")), index = structure(c(1413981900, 1413982800, 1413983700, 1413984600, 1413985500, 1413986400, 1413987300, 1413988200, 1413989100, 1413990000), tzone = "", tclass = c("POSIXct", "POSIXt")), .Dim = c(10L, 1L)) 
XTS2 <- XTS1^0.2 
charts.PerformanceSummary(XTS1) 
charts.PerformanceSummary(XTS2) 

Est-ce que quelqu'un sait comment obtenir ce dernier script pour tracer 2 cartes côte à côte?

Je voudrais éviter d'utiliser un autre paquet si possible. Merci.

+2

On dirait que 'charts.PerformanceSummary' utilise' layout' en interne pour configurer ses trois tracés. Je pense que votre meilleur pari pour obtenir deux côte à côte serait d'enregistrer des parcelles comme des images et ensuite les mettre ensemble. – Gregor

Répondre

3

chart.PerformanceSummary est vraiment juste un emballage à plusieurs cartes.

Vous pouvez faire cela, et l'étendre à un nombre quelconque de symboles horizontalement si vous le souhaitez (plus de 2 symboles si vous voulez) enter image description here:

par(mfrow=c(3,2)) 
# First row 
chart.CumReturns(XTS1, ylab = "Cumulative Return", main = "give me a title") 
chart.CumReturns(XTS2, ylab = "Cumulative Return", main = "give me a title2") 
# second row 
chart.BarVaR(XTS1) 
chart.BarVaR(XTS2) 

# third row 
chart.Drawdown(XTS1, main = "DD title", ylab = "Drawdown", 
) 
chart.Drawdown(XTS2, main = "", ylab = "Drawdown", 
) 

Vous devez ajouter les paramètres appropriés à chaque parcelle pour choses comme la couleur et les titres (en laissant cela à vous), mais vous avez la possibilité d'ajouter des graphiques à partir des merveilleux paquets xts, quantmod, performanceAnalytics (et autres).