У меня возникла интересная проблема с масштабированием с помощью ggplot. У меня есть набор данных, который я могу нарисовать просто отлично, используя линейную шкалу по умолчанию, но когда я использую scale_y_log10(), числа уходят. Вот пример кода и две картинки. Обратите внимание, что максимальное значение в линейном масштабе составляет ~ 700, а масштаб масштабирования журнала - 10 ^ 8. Я покажу вам, что весь набор данных составляет всего ~ 8000 записей, поэтому что-то не так.
Я предполагаю, что проблема имеет какое-то отношение к структуре моего набора данных и биннинга, поскольку я не могу воспроизвести эту ошибку на общем наборе данных, например "бриллианты". Однако я не уверен, что лучший способ устранения неполадок.
спасибо, zach cp
Изменить: bdamarest может воспроизвести масштабную задачу на алмазном наборе данных следующим образом:
example_1 = ggplot(diamonds, aes(x=clarity, fill=cut)) +
geom_bar() + scale_y_log10(); print(example_1)
#data.melt is the name of my dataset
> ggplot(data.melt, aes(name, fill= Library)) + geom_bar()
> ggplot(data.melt, aes(name, fill= Library)) + geom_bar() + scale_y_log10()
> length(data.melt$name)
[1] 8003
вот некоторые примеры данных... и я думаю, что вижу проблему. Первоначальный расплавленный набор данных, возможно, составлял ~ 10 ^ 8 рядов. Может быть, номера строк используются для статистики?
> head(data.melt)
Library name group
221938 AB Arthrofactin glycopeptide
235087 AB Putisolvin cyclic peptide
235090 AB Putisolvin cyclic peptide
222125 AB Arthrofactin glycopeptide
311468 AB Triostin cyclic depsipeptide
92249 AB CDA lipopeptide
> dput(head(test2))
structure(list(Library = c("AB", "AB", "AB", "AB", "AB", "AB"
), name = c("Arthrofactin", "Putisolvin", "Putisolvin", "Arthrofactin",
"Triostin", "CDA"), group = c("glycopeptide", "cyclic peptide",
"cyclic peptide", "glycopeptide", "cyclic depsipeptide", "lipopeptide"
)), .Names = c("Library", "name", "group"), row.names = c(221938L,
235087L, 235090L, 222125L, 311468L, 92249L), class = "data.frame")
UPDATE:
Номера строк не являются проблемой. Вот те же самые данные, которые были взяты с использованием той же оси X-оси и цвета заливки, и масштабирование полностью корректно:
> ggplot(data.melt, aes(name, fill= name)) + geom_bar()
> ggplot(data.melt, aes(name, fill= name)) + geom_bar() + scale_y_log10()
> length(data.melt$name)
[1] 8003