2015-05-29 3 views
2

Предположим, у меня есть следующие данные:Получение легенды из сюжета в chart.TimeSeries в R

data<- structure(c(103.7, 103.2, 103.1, 105.4, 102.1, 103.5, 103.1, 
      102.6, 102.2, 104.6, -2.1, -1.4, -2.6, 1.9, -0.7, 1.4, -0.6, 
      -1.3, -1.4, 0, -25.3, -25.3, -25.3, -24.9, -24.7, -24.5, -21.4, 
      -20.9, -20.4, -19.8, 25, 20.7, 25.5, 19.8, 12.8, 13.6, 15.5, 
      23, 12.8, 16.3, -16.1, -20.1, -16.9, -17.8, -18.6, -19.5, -16.4, 
      -18.9, -16.1, -15.1), .Dim = c(10L, 5L), .Dimnames = list(NULL, 
      c("Edinburgh", "Glasgow", "Aberdeen", "St Andrews", 
      "Highlands")), .Tsp = c(1985, 1985.75, 12), class = c("mts", 
      "ts", "matrix")) 

я понял, что самый подходящий способ построить мои данные, чтобы использовать функцию chart.TimeSeries из PerformanceAnalytics пакета , Я сделал это с помощью:

chart.TimeSeries(data, legend.loc = "right") 

и я получил:

enter image description here

Мой вопрос заключается в том, чтобы получить легенду за пределами участка справа. Я даже попытался воспроизвести тот же график, используя ggplot, но не смог.

+0

Используйте 'legend.loc = NULL', а затем добавить пользовательскую легенду, используя' legend' функцию. –

+0

@TimBiegeleisen Я пробовал это, но появился один вопрос: как я могу заставить легенду использовать те же цвета диаграммы, что и «chart.TimeSeries». – athraa

ответ

0

Попробуйте это:

chart.TimeSeries(data, legend.loc = NULL) 

Затем добавить пользовательскую легенду:

legend(20,10, c("Edinburgh","Glasgow", "Aberdeen", "St Andrews", "Highlands"), 
lty=c(1,1), lwd=c(2.5,2.5), col=c("black", "red", "green", "deepskyblue", "blue")) 
+0

Это удалит легенду из сюжета, но мне все еще нужно. Мне просто нужна та же легенда с правой стороны, но вне сюжета. – athraa

+0

Это работало на вашей стороне? похоже, не работает со мной даже после настройки координат 'x' и' y'. – athraa