Изменить цвет фона графика R - PullRequest
37 голосов
/ 30 августа 2011

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

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 ]

43 голосов
/ 30 августа 2011

Как

par(bg = 'blue')
# Now do plot
36 голосов
/ 30 августа 2011

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

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

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

3 голосов
/ 10 февраля 2015

Я использую 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")
3 голосов
/ 14 марта 2014

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

После объединения информации в этой теме с помощью 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 ч темный.

ура,

Ромарио

0 голосов
/ 11 апреля 2017
adjustcolor("blanchedalmond",alpha.f = 0.3)

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...