2012-04-09 103 views
6

我需要创建一个复杂的图例,其中包含一个分数,分子和分母的颜色为Legend图例中的分数,多种颜色

是否可以用(base)R创建这样一个图例?

由于我必须将这个图例添加到不同情节的不同情节,我不想手动编程文本,但能够自动添加它作为图例。它不一定是图例(尽管它会很方便),但是我不想手动输入每个元素的坐标。

有什么想法?

+1

我不没有时间去处理一个例子,但我能想到的最好的方法是使用** TeachingDemos **中的'subplot'函数来添加“图例”。这样,您可以直接使用带有硬编码位置的“文本”来绘制文本。 – joran 2012-04-09 00:20:41

+0

或者甚至没有硬编码,因为每个图可以将文本置于例如'0.9 * max(x),0.75 * max(y)'处。 – 2012-04-09 11:24:06

回答

8

假设你有这样的:

d=1:10 
plot(d,type="l") 

,你不会需要不同颜色的分子和分母,您可以用一行代码(包括@CarlWitthoft文本位置提示)做到这一点:

text(0.5*max(d), 0.9*max(d), expression(Result == frac(Green, Blue)), cex=1.5) 

enter image description here

但没有改变分子和分母的颜色没有直接的方法。所以笨重的方式是单独定制每个元素:

text(0.4*max(d), 0.9*max(d), "Result =", cex=1.5) 
text(0.55*max(d), 0.93*max(d), "Green", col="green", cex=1.5) 
text(0.55*max(d), 0.87*max(d), "Blue", col="blue", cex=1.5) 
segments(0.5*max(d), 0.9*max(d), 0.6*max(d), 0.9*max(d)) 

enter image description here

,我知道是不是你真正想要的,但万一没有更好的黑客来......