Ошибка - данные визуализации в ggplot2 с пакетом ggrepel

Попробовал нарисовать график в библиотеке ggplot2 с добавлением ggrepel:

set.seed(42)
ggplot(mtcars) +
  geom_point(aes(wt, mpg), size = 5, color = 'grey') +
  geom_label_repel(aes(wt, mpg, fill = factor(cyl), label = rownames(mtcars)),
                   fontface = 'bold', color = 'white',
                   box.padding = 0.35, point.padding = 0.5, 
                   segment.color = 'grey50') + 
  theme_classic(base_size = 16)

Но я получил следующую ошибку:

Error in convertUnit(x, unitTo, "x", "dimension", "x", "dimension", valueOnly = valueOnly) : 
  'x' argument must be a unit object

Спасибо?


person Denmla    schedule 11.10.2017    source источник
comment
Я запустил ваш код, добавив только library(ggplot2) и library(ggrepel), и он работал без ошибок.   -  person clemens    schedule 11.10.2017
comment
Спасибо. Я не знаю, в чем моя вина? Пользуюсь версией R 3.4.0   -  person Denmla    schedule 11.10.2017
comment
То же самое здесь, используя ggrepel_0.7.0 и ggplot2_2.2.1   -  person clemens    schedule 11.10.2017
comment
Я мог воспроизвести сообщение об ошибке в чистом сеансе на R 3.4.1 и ggrepel_0.6.5. Попробуйте изменить box.padding = 0.35, point.padding = 0.5 на box.padding = unit(0.35, "lines"), point.padding = unit(0.5, "lines")?   -  person Z.Lin    schedule 11.10.2017
comment
Большое спасибо Z.Lin!   -  person Denmla    schedule 12.10.2017


Ответы (1)


Причина ошибки:

box.padding = 0.35, point.padding = 0.5

ggrepel версии 0.6.11 был изменен, чтобы принимать числа, такие как 0.35 или возвращаемое значение из unit(0.35, "lines").

Если вы используете ggrepel до версии 0.6.11, попробуйте использовать:

unit(0.35, "lines"), unit(0.5, "lines")

Я предполагаю, что вы, вероятно, используете ggrepel 0.6.5 от CRAN. Вы можете рассмотреть возможность обновления с CRAN до последней версии, то есть 0.7.0.

person Kamil Slowikowski    schedule 12.10.2017
comment
Большое спасибо, Камил. Я это сделал ! - person Denmla; 13.10.2017