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

时间:2018-12-05 15:54:02

标签: r plot

我真的很喜欢利用基数R plot函数的120多种绘图方法,向其扔随机对象并检查结果。

这次,我刚发送了一个基​​本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))

使用plot(dd)进行绘制可以得出:

enter image description here

我希望这些条形不是黑色。我尝试了明显的plot(dd, col="red"),但是它什么也没做。与fgbg相同,我也尝试过。

我查看了?plot.data.frame?plot.factor,但没有看到有关如何更改颜色的任何提示。构建此图的实际功能是什么?如何调用它以及如何更改其颜色?

1 个答案:

答案 0 :(得分:5)

plot似乎正在尝试制作箱线图,但是由于每个类别只有一个值,因此只能得到一条水平线。 border="red"会将颜色更改为红色。如果您运行x = plot(dd)然后检查x,您会看到它是一个列表,其中第一个元素包含箱线图统计信息。

plot是一个“通用”函数,它根据您提供给plot的对象类型来“分派”不同的实际绘图函数(称为“方法”)。在这种情况下,您有一个分类的x轴变量,因此plot调度了一个产生箱形图的“方法”。

要查看plot可以调用哪些特定功能,请运行methods(plot)。我没有检查,但是我怀疑plot.data.frame函数最终会调用一个函数,该函数在x变量是分类变量而y变量是数字变量时运行(生成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")

enter image description here

dd %>% 
  group_by(FF) %>% 
  summarize(XX=mean(XX)) %>% 
  plot(border="red")

enter image description here