Я пытаюсь использовать именованный вектор символов для хранения пользовательской цветовой палитры, поэтому я могу сказать, например. палитра['красный'] вместо повторения «#dc322f» повсюду.
Однако, похоже, я не могу использовать элемент этого вектора в качестве аргумента для par()
(хотя его можно использовать в другом месте).
Вот пример. Он создаст график с зелеными точками, но вызов par() завершится ошибкой, и фон станет белым. Обратите внимание, что я могу задать параметры с помощью вектора палитры из вызова plot()
:
> palette <- c('#002b36','#dc322f','#859900')
> names(palette) <- c('black','red','green')
> par(bg=palette['red'])
Warning message:
In par(bg = palette["red"]) : "bg.red" is not a graphical parameter
> plot(1:10,1:10,col=palette['green'])
> # (White graph with green dots appears)
Однако когда я использую именованный числовой вектор, он работает:
> palette <- 1:3
> names(palette) <- c('black','red','green')
> par(bg=palette['red'])
> # (no error here -- it worked.)
> plot(1:10,1:10,col=palette['green'])
> # (Red graph with green dots appears)
Я довольно новичок в R, и кажется, что я могу упустить что-то фундаментальное. Есть идеи, что здесь происходит?