好吧,假设我有以下情节。
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可以实现这一点,但不确定我是否可以用基本图形做到这一点。
答案 0 :(得分:41)
像
par(bg = 'blue')
# Now do plot
答案 1 :(得分:36)
一次Google搜索later我们了解到您可以像Owen所示设置整个绘图设备背景颜色。如果您只想更改绘图区域,则必须执行R-Help线程中概述的内容:
plot(df)
rect(par("usr")[1],par("usr")[3],par("usr")[2],par("usr")[4],col = "gray")
points(df)
barplot
函数有一个add
参数,您可能需要使用它。
答案 2 :(得分: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)
答案 3 :(得分:3)
我使用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")
答案 4 :(得分:1)
在将此线程中的信息与R-help ?rect 组合后,我想出了这个昼夜节律数据(24h plot)的漂亮图表。背景矩形的脚本是这样的:
object(WP_Query)#492 (48) {
["query"]=>
array(6) {
["post_type"]=>
string(12) "$post_type"
["posts_per_page"]=>
int(-1)
["post_status"]=>
string(7) "publish"
["orderby"]=>
string(14) "meta_value_num"
["meta_key"]=>
string(18) "$order_key"
["tax_query"]=>
array(3) {
["relation"]=>
string(3) "AND"
[0]=>
array(5) {
["taxonomy"]=>
string(20) "$taxonomy1"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "819"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
[1]=>
array(5) {
["taxonomy"]=>
string(18) "$taxonomy2"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "167"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
}
}
["query_vars"]=>
array(68) {
["post_type"]=>
string(12) "$post_type"
["posts_per_page"]=>
int(-1)
["post_status"]=>
string(7) "publish"
["orderby"]=>
string(14) "meta_value_num"
["meta_key"]=>
string(18) "$order_key"
["tax_query"]=>
array(3) {
["relation"]=>
string(3) "AND"
[0]=>
array(5) {
["taxonomy"]=>
string(20) "$taxonomy1"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "819"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
[1]=>
array(5) {
["taxonomy"]=>
string(18) "$taxonomy2"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "167"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
}
["date_query"]=>
bool(false)
["request"]=>
string(901) "SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_relationships AS tt1 ON (wp_posts.ID = tt1.object_id) INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) WHERE 1=1 AND (
wp_term_relationships.term_taxonomy_id IN (819)
AND
tt1.term_taxonomy_id IN (167)
) AND (
wp_postmeta.meta_key = '$order_key'
) AND wp_posts.post_type = '$post_type' AND ((wp_posts.post_status = 'publish')) AND ( wp_posts.post_title LIKE '%$search%' OR wp_posts.ID IN ( SELECT post_id FROM wp_postmeta WHERE meta_value LIKE '%$search%' ) OR wp_posts.ID IN ( SELECT object_id FROM wp_term_relationships AS tr LEFT JOIN wp_terms AS t ON tr.term_taxonomy_id = t.term_id WHERE t.name LIKE '%$search%' ) OR wp_posts.post_content RLIKE '[[:<:]]$search[[:>:]]' ) GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value+0 DESC "
>rect(xleft, ybottom, xright, ytop, col = NA, border = NULL)
这个想法是用8小时光照和16小时黑暗代表24小时的天数。
干杯,
罗马里奥
答案 5 :(得分:0)
adjustcolor("blanchedalmond",alpha.f = 0.3)
上述功能提供的颜色代码对应于输入颜色的透明版本(在这种情况下,输入颜色为“blanchedalmond”。)。
输入alpha值的范围为0到1,0为完全透明,1为完全不透明。 (在这种情况下,给出alpha为.3的半透明shad“blanchedalmond”的代码是“#FFEBCD4D
。”请务必包含#标签符号)。您可以使用此线程中前面的joran提供的此函数将新的半透明颜色制作为背景颜色:
rect(par("usr")[1],par("usr")[3],par("usr")[2],par("usr")[4],col = "blanchedalmond")
通过使用半透明颜色,您可以确保在应用背景颜色后仍然可以在下面看到图形的数据。 希望这有帮助!