Изменить цвет фона графика 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, но не уверен, смогу ли я сделать это с базовой графикой.

6 ответов

Решение

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

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

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

Подобно

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

Старый вопрос, но у меня есть намного лучший способ сделать это. Вместо того, чтобы использовать 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)

Я использую 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")

После объединения информации в этой теме с R-help ? Rect я придумал этот прекрасный график для данных о циркадном ритме ( 24-часовой график). Сценарий для фоновых прямоугольников выглядит так:

корневой скрипт:

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

Мой сценарий:

>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

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

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

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

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

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

Другие вопросы по тегам