Изменение цвета фона графика 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, который вам, вероятно, понадобится использовать.
Старый вопрос, но у меня есть гораздо лучший способ сделать это. Вместо использования
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)Мой сценарий:
Идея состоит в том, чтобы представить дни из 24 часов с 8 ч света и 16 ч темноты.>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)Ура,
Ромарио
Вышеописанная функция предоставляет цветовой код, который соответствует прозрачной версии входного цвета (в этом случае входной цвет - "blanchedalmond."). Входные Альфа-значения варьируются в диапазоне от 0 до 1, причем 0 является полностью прозрачным, а 1-полностью непрозрачным. (В этом случае код для полупрозрачного оттенка "blanchedalmond "задается Альфой.3-это "adjustcolor("blanchedalmond",alpha.f = 0.3)#FFEBCD4D."Обязательно включите символ хэштега). Вы можете сделать новый полупрозрачный цвет фоновым цветом используя эту функцию, предоставленную джораном ранее в этом потоке:rect(par("usr")[1],par("usr")[3],par("usr")[2],par("usr")[4],col = "blanchedalmond")Используя полупрозрачный цвет, вы можете быть уверены, что данные графика все еще видны под ним после применения цвета фона. Надеюсь, это поможет!
Comments