Вероятно, это простой вопрос, но я не знаю ответа на этот вопрос. Можно ли изменить масштаб точек в ggplot без ущерба для эстетики размера?
В принципе, допустим, у меня есть следующее:
data <- data.frame(size=c(1, 1, 2, 2, 2), x=1:5, y=1:5, color=factor(c(0, 0, 1, 1, 1)))
cols <- unique(data$color)
names(cols) <- c("group 1", "group 2")
sols <- unique(data$size)
names(sols) <- c("group 1", "group 2")
Я могу изобразить это как:
ggplot(data,aes(x=x, y=y, size=size, color=color)) +
geom_point() +
scale_color_discrete("Dot", labels=names(cols)) +
scale_size_continuous("Dot", breaks=sols)
который показывает такие точки, как:
Это выглядит великолепно, но предположим, что теперь у меня есть 1000 наблюдений за моими данными, а не только 5. Внезапно мой график сильно перегружен точками, поскольку точки group2 такие большие. Как изменить масштаб точек, чтобы сделать их более подходящими по размеру, чтобы можно было разместить больше точек без перекрытия точек? Я рассмотрел geom_de density, но это не совсем подходит для моих целей, и я бы предпочел визуализацию диаграммы рассеяния.
Моя цель - некоторая функция, которая изменяет масштаб моих точек так, чтобы точки в целом были меньше, чем они есть сейчас, с соответствующей пропорцией размера. Чтобы сделать вещи более разумными, как только у меня это будет, я сделаю логарифмическое преобразование переменной размера, чтобы сделать вещи более пропорциональными (в частности, поскольку любое общее изменение масштаба точек, вероятно, приведет к тому, что меньшие точки будут почти невидимыми маленькими) . Если есть лучший способ сделать это, я весь в ушах! Спасибо ребята.
geom_hex()
) - person Jake Kaupp   schedule 19.01.2018