更改R图的背景颜色

时间:2011-08-29 22:56:41

标签: r plot

好吧,假设我有以下情节。

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 个答案:

答案 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")

通过使用半透明颜色,您可以确保在应用背景颜色后仍然可以在下面看到图形的数据。 希望这有帮助!