R中的chart.TimeSeries中的图例

Posted

技术标签:

【中文标题】R中的chart.TimeSeries中的图例【英文标题】:Getting legend out of the plot in chart.TimeSeries in R 【发布时间】:2015-08-12 04:51:26 【问题描述】:

假设我有以下数据:

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"))

我发现绘制数据最合适的方法是使用 PerformanceAnalytics 包中的 chart.TimeSeries 函数。我是这样做的:

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

我得到了:

我的问题是如何将图例之外的图例移到右侧。我什至尝试使用ggplot 重现相同的图表,但失败了。

【问题讨论】:

使用legend.loc = NULL,然后使用legend函数添加自定义图例。 @TimBiegeleisen 我试过这个,但出现了一个问题,我怎样才能让图例使用chart.TimeSeries 生成的相同图表颜色。 【参考方案1】:

试试这个:

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"))

【讨论】:

这将从图中删除图例,但我仍然需要它。我只需要在右侧但在情节之外的相同图例。 这对你有用吗?即使调整了xy 坐标,我似乎也无法正常工作。

以上是关于R中的chart.TimeSeries中的图例的主要内容,如果未能解决你的问题,请参考以下文章

R语言ggplot2可视化:去除可视化结果中的NA图例删除缺失值图例

R中的上标图例文本

在 R 中的多个图表的外部添加图例

R中的绘图函数产生图例而不调用legend()

使用 R 中的 Visreg 包更改图例位置

R语言ggplot2可视化调整图例中的形状符号大小实战