geom_dotplot не разрешает непрерывную переменную цвета?

Я пытаюсь использовать точечные диаграммы для выражения как образцов данных, так и образцов метаданных. Оба данных являются непрерывными числовыми данными и сгруппированы в несколько поступлений. К сожалению, я не могу заставить непрерывные данные «возраста» работать в geom_dotplot, если я не изменю их на категориальные данные с помощью factor(), и я понятия не имею, почему

samples.GN.df<- data.frame(
    Protein1 = sample(1:30),
    Accession = sample(c("yes", "no"), 30, replace = TRUE),
    Age = sample(10:39)
    )

Это не работает:

ggplot(samples.GN.df, aes(y=Protein1, x=Accession))+
   geom_dotplot(binaxis = 'y', stackdir = 'center', mapping = aes(fill = Age))

Это работает (хотя точки больше не складываются аккуратно, но я могу решить это дальше):

ggplot(samples.GN.df, aes(y=Protein1, x=Accession))+
   geom_dotplot(binaxis = 'y', stackdir = 'center', mapping = aes(fill = factor(Age)))

Я пробовал разные вещи, чтобы заставить его работать как непрерывные, а не дискретные данные, но безрезультатно, он просто выглядит черным, даже сообщение об ошибке не указывает мне правильное направление.

Любая помощь в этом будет принята с благодарностью!

(отредактировано для добавления образцов данных)


person Phil Lewis    schedule 27.06.2018    source источник
comment
Обращаясь за помощью, вы должны указать простой воспроизводимый пример с образцом ввода и желаемым выводом, которые можно использовать для тестирования и проверки возможных решений.   -  person MrFlick    schedule 27.06.2018
comment
Образцы данных добавлены, спасибо!   -  person Phil Lewis    schedule 28.06.2018


Ответы (1)


Вы можете просто добавить группу в основное отображение и непрерывное отображение заливки в geom_dotplot:

ggplot(samples.GN.df, aes(y=Protein1, x=Accession, group=factor(Age)) ) +
 geom_dotplot(aes(fill=Age ), binaxis = 'y', stackdir = 'center')
person Lstat    schedule 28.06.2018
comment
К сожалению, это не работает с реальными данными, где точки перекрываются, извините! Моя вина за недостаточное количество образцов данных - person Phil Lewis; 28.06.2018