R:使用ggplot调用中变量的赋值而不是变量名

时间:2013-01-22 02:07:15

标签: r ggplot2

我有一个ggplot图表,它使用分面和手动颜色分配。我想在调用本身之外定义变量,这样我就不必在scale_colour_manual和其他区域挖掘更改breaksvalues调用{}中使用的值{1}}。

让我们说这些是变量。

scale_colour_manual

var1 <- 'series.a' var1.label <- "Series A result" var2 <- 'series.b' var2.label <- "Series B result" values我可以使用以下内容:

breaks

这个情节很好,因为上面的代码生成了以下输出:

c('Series A result' = alpha("blue", 0.5),'Series B result' = alpha("red",0.5))

这段代码:

Series A result Series B result 
    "#0000FF80"     "#FF000080"

没有绘图,因为它产生了这个,其中元素的名称与我们用于颜色的值不匹配,即'A系列结果'和'B系列结果':

c(var1.label = alpha("blue", 0.5), var2.label = alpha("red",0.5))

所以问题似乎是:我如何让 var1.label var2.label "#0000FF80" "#FF000080" 使用变量的值而不是名字?

我查看了c()eval甚至是parse,但他们似乎并没有按照我的意愿行事。我怀疑这是一个非常简单的R片,但这不是我遇到的问题。如果需要,可以使用示例代码。

force

期望的结果就是这种形象:

screenshot

1 个答案:

答案 0 :(得分:2)

v <- c(alpha("blue", 0.5), alpha("red",0.5))
names(v) <- c(var1.label, var2.label)

> v
## Series A result Series B result 
##     "#0000FF80"     "#FF000080" 

然后在代码中使用values = v