Подтвердить что ты не робот

Изменить цвет фона участка R

Хорошо, скажем, у меня есть следующий сюжет.

df = data.frame(date=c(rep(2008:2013, by=1)),
                value=c(303,407,538,696,881,1094))

barplot(df$value, main="TITLE", col="gray", ylab="People", xlab="Years")

Как изменить фон на синий?

Я знаю, что это возможно с ggplot2, но не уверен, могу ли я сделать это с базовой графикой.

4b9b3361

Ответ 1

Один из поисковых запросов Google позже мы узнали, что вы можете установить весь цвет фона заговора, как указывает Оуэн. Если вы хотите, чтобы область изменения области изменилась, вы должны сделать что-то вроде того, что указано в этом потоке R-Help:

plot(df)
rect(par("usr")[1],par("usr")[3],par("usr")[2],par("usr")[4],col = "gray")
points(df)

Функция barplot имеет параметр add, который вам, вероятно, потребуется использовать.

Ответ 2

Как

par(bg = 'blue')
# Now do plot

Ответ 3

Старый вопрос, но у меня есть намного лучший способ сделать это. Вместо rect() используйте polygon. Это позволяет хранить все в plot без использования points. Также вам не нужно возиться с par вообще. Если вы хотите, чтобы все вещи были автоматизированы, сделайте координаты polygon функцией ваших данных.

plot.new()
polygon(c(-min(df[,1])^2,-min(df[,1])^2,max(df[,1])^2,max(df[,1])^2),c(-min(df[,2])^2,max(df[,2])^2,max(df[,2])^2,-min(df[,2])^2), col="grey")
par(new=T)
plot(df)

Ответ 4

Я использую abline() с чрезвычайно широкими вертикальными линиями, чтобы заполнить пространство графика:

abline (v = xpoints, col = "grey90", lwd = 80)

Вам нужно создать фрейм, затем аблайн, а затем построить точки, чтобы они были видны сверху. Вы можете даже использовать второй оператор abline(), чтобы поместить тонкие белые или черные линии по серому, если хотите.

Пример:

xpoints = 1:20
y = rnorm(20)
plot(NULL,ylim=c(-3,3),xlim=xpoints)
abline(v=xpoints,col="gray90",lwd=80)
abline(v=xpoints,col="white")
abline(h = 0, lty = 2) 
points(xpoints, y, pch = 16, cex = 1.2, col = "red")

Ответ 5

После объединения информации в этом потоке с помощью R-help? rect я придумал этот хороший график для данных о циркадных ритмах (24h plot). script для фоновых прямоугольников:

root script:

>rect(xleft, ybottom, xright, ytop, col = NA, border = NULL)

Мой script:

>i <- 24*(0:8)
>rect(8+i, 1, 24+i, 130, col = "lightgrey", border=NA)
>rect(8+i, -10, 24+i, 0.1, col = "black", border=NA)

Идея состоит в том, чтобы представлять дни 24 часа с 8-часовым светом и 16-часовым темным.

Приветствия,

Romário

Ответ 6

adjustcolor("blanchedalmond",alpha.f = 0.3)

Вышеуказанная функция предоставляет цветовой код, который соответствует прозрачной версии входного цвета (в этом случае входной цвет является "blanchedalmond" ).

Диапазон входных альфа-значений по шкале от 0 до 1, 0 полностью прозрачен и 1 полностью непрозрачен. (В этом случае код для полупрозрачного оттенка "blanchedalmond", заданный альфам .3, равен "#FFEBCD4D". Не забудьте включить символ хэштега). Вы можете сделать новый полупрозрачный цвет в цвет фона, используя эту функцию, предоставленную joran ранее в этом потоке:

rect(par("usr")[1],par("usr")[3],par("usr")[2],par("usr")[4],col = "blanchedalmond")

Используя полупрозрачный цвет, вы можете быть уверены, что данные графа все еще видны под ним после того, как будет применен цвет фона. Надеюсь, это поможет!