Что это за сюжет и как мне изменить его цвет? - PullRequest
0 голосов
/ 05 декабря 2018

Мне действительно нравится использовать преимущества более 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))

При построении графика с помощью plot(dd) получается:

enter image description here

Iхочу, чтобы полосы были другого цвета, чем черный.Я попробовал очевидное plot(dd, col="red"), но это ничего не делает.То же самое с fg или bg, который я тоже попробовал.

Я посмотрел на ?plot.data.frame и ?plot.factor, но не увидел ни намека на то, как изменить цвет.Какая реальная функция строит этот сюжет, как мы его называем и как изменить цвета на нем?

1 Ответ

0 голосов
/ 05 декабря 2018

Похоже, 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

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