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

674   6  

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 , я придумал этот хороший график для данных циркадного ритма ( 24h plot). Сценарий для фоновых прямоугольников выглядит следующим образом:

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

>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 ч темноты.

Ура,

Ромарио

adjustcolor("blanchedalmond",alpha.f = 0.3)
Вышеописанная функция предоставляет цветовой код, который соответствует прозрачной версии входного цвета (в этом случае входной цвет - "blanchedalmond."). Входные Альфа-значения варьируются в диапазоне от 0 до 1, причем 0 является полностью прозрачным, а 1-полностью непрозрачным. (В этом случае код для полупрозрачного оттенка "blanchedalmond "задается Альфой.3-это " #FFEBCD4D."Обязательно включите символ хэштега). Вы можете сделать новый полупрозрачный цвет фоновым цветом используя эту функцию, предоставленную джораном ранее в этом потоке:
rect(par("usr")[1],par("usr")[3],par("usr")[2],par("usr")[4],col = "blanchedalmond")

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

Comments

    Ничего не найдено.