Как использовать разные цвета при построении в al oop (R) - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь нанести 18 отдельных графиков на мультиплот 3x6 в R. Для большей эффективности я создал эти графики как al oop, однако мне бы хотелось, чтобы графики в каждом столбце имели свой собственный цвет (т.е. все графики в столбце 1 будут красными, все графики в столбце 2 будут голубыми и т. д. c.). Есть ли способ, которым я могу сделать это, сохраняя при этом формат l oop?

par(mfcol = c(3,6))
for(i in 1:6)
{
  plot(sigma_trace[,i], type ='l', main = paste("Sigma Traceplot Chain", i))
  plot(theta_1_trace[,i], type = 'l', main = paste("Theta[1] Traceplot Chain", i))
  plot(theta_2_trace[,i], type = 'l', main = paste("Theta[2] Traceplot Chain", i))
}

Так что, в принципе, я хочу, чтобы каждое утверждение l oop следовало тому же шаблону цветов. Это возможно?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

В Base R вы можете использовать colorRampPalette() для создания градиента, или вы можете просто сделать объект с цветами, на которые вы хотите сослаться:

plotcolors <- colorRampPalette(c("gold","blue"))(6)
par(mfrow = c(2, 3))

for(i in 1:6){
  plot(1:10,1:10,type='l',col=plotcolors[i])
}

Если вы хотите указать все 6 из Ваши цвета так же просто, как изменить вышеуказанный код

plotcolors <- c("red","blue","green","black","yellow","purple")

Custom Colour Ramp

0 голосов
/ 14 апреля 2020

Вы можете создать цветовую палитру, используя RColorBrewer, а затем вызывать каждый цвет в вашем l oop. Например.

library(RColorBrewer)

# set the colour palette
cols <- brewer.pal(4,'Set2')

# variables to plot
x = (1:250)/10
y = cos(x)

# plot in the loop
op <- par(mfrow = c(2, 2))
for (i in 1:4){
  plot(x, y, col=cols[i], type='l', lwd=3)
}
par(op)

enter image description here

Вот обзор пакета.

...