4

我会尝试为我们正在做的所有地块定义我的公司颜色和字体等。所以第一个问题:如何在不覆盖“正常”标准设置的情况下存储它们?我的意思是我可以将所有内容存储在“par-Container”中并将它们分配给每个地块等吗?

好的,我在这里定义了颜色:

GRAPH_BLUE<-rgb(43/255, 71/255,153/255)
GRAPH_ORANGE<-rgb(243/255, 112/255, 33/255)
GRAPH_BACKGROUND<-rgb(180/255, 226/255, 244/255)

如果我这样做,plot(something, col=GRAPH_BLUE)我会收到错误:

Error in axis(1, at = xycoords$x, labels = FALSE, col = "#BBBBBB", ...) : 
  formal argument "col" matched by multiple actual arguments

如果我这样做par(col=GRAPH_BLUE)并且plot(something)它完全按照我的意愿工作。这是为什么?我需要改变它在第一行代码中的工作原理吗?据我了解,它会引发错误,因为有多个设置开始colplot(something, col=GRAPH_BLUE)覆盖所有设置,这就是轴不可见的原因。但是图表的颜色线是否有特殊的 col 设置?

编辑:好的,这是一个可重现的例子:

getSymbols('SPY', from='1998-01-01', to='2011-07-31', adjust=T)

GRAPH_BLUE<-rgb(43/255, 71/255,153/255)
GRAPH_ORANGE<-rgb(243/255, 112/255, 33/255)
GRAPH_BACKGROUND<-rgb(180/255, 226/255, 244/255)

par(col=GRAPH_BLUE)

plot.xts(SPY) #works great
plot.xts(SPY, col=GRAPH_ORANGE) #not really since all axes are missing

第一个问题是我是否可以将所有这些设置不直接存储在par()传递给绘图函数的另一个变量中?

4

1 回答 1

3

不,只有图表的颜色线没有特殊的 col 设置。您应该使用par或修改函数的代码源,并像bar.color的情况一样添加它candle.col。我不知道他们为什么要对 bar 和蜡烛类型而不是线条这样做?我想没有很多参数...

请注意,您可以保存par每次更改时的旧参数。

op <- par(col=GRAPH_BLUE)
... ## some plot job
par(op) ## retsore it 

破解函数并为行添加新的 col 参数也很容易。函数中只有几行需要更改:

plot.xts.col <- function (old.parameters,lines.col='green', ...) {
.....
  ## you change this line to add the paremeter explicitly
  plot(xycoords$x, xycoords$y, type = type, axes = FALSE, 
   ann = FALSE,col=lines.col, ...)

 ## and the last line since .xtsEnv is an internal object
 assign(".plot.xts", recordPlot(), xts:::.xtsEnv)

}
于 2013-10-07T09:10:42.007 回答