什么是这种情节,我该如何改变它的颜色

Bas*_*ien 2 plot r

我真的很喜欢利用120+基本R plot函数的绘图方法,抛出随机对象并检查出来的内容.

这一次,我刚刚给一个基本的data.frame一个factor变量.我喜欢出来的情节,但我无法改变它的颜色.

制作情节:

library(dplyr)
set.seed(123)

dd <- data.frame(FF = cut(runif(1000,0,100), seq(0,100,10)),
                 XX = rnorm(1000, 10, 2)) %>% 
  group_by(FF) %>% 
  summarize(XX=mean(XX))
Run Code Online (Sandbox Code Playgroud)

用它绘图plot(dd)给出:

在此输入图像描述

我希望这些酒吧是黑色以外的其他颜色.我尝试了显而易见plot(dd, col="red")但它没有做任何事情.同样的事情fg或者bg,我也尝试过.

我看了看?plot.data.frame,并?plot.factor却没有看到关于如何改变颜色的任何暗示.构建此图的实际功能是什么,我们如何调用它以及如何更改颜色?

eip*_*i10 5

它看起来像是plot试图制作一个箱形图,但由于每个类别只有一个值,所以你得到的是一条水平线.border="red"将颜色更改为红色.如果你运行x = plot(dd)然后检查x,你会看到它是一个列表,其中第一个元素包含boxplot统计数据.

plot是一个"通用"函数,它"调度"不同的实际绘图函数(称为"方法"),具体取决于您提供的对象类型plot.在这种情况下,您有一个分类的x轴变量,因此plot调度生成箱线图的"方法".

要查看plot可以调用的特定函数,请运行methods(plot).我没有检查过,但是我怀疑plot.data.frame当x变量是分类且y变量是数字时,函数最终会调用一个生成boxplot的函数(运行graphics:::plot.data.frame(dd),看看这个).

如果plot在汇总之前运行,则可以看到框图显示:

library(dplyr)

set.seed(123)
dd <- data.frame(FF = cut(runif(1000,0,100), seq(0,100,10)),
                 XX = rnorm(1000, 10, 2))

plot(dd, border="red")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

dd %>% 
  group_by(FF) %>% 
  summarize(XX=mean(XX)) %>% 
  plot(border="red")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述