Это большая проблема для ggplot2
.
Во-первых, читать данные в:
snb <- read.csv('MLB.csv')
С фрейме данных вы можете попробовать построения точек, которые являются частично прозрачными, и устанавливать их окрашиваться в соответствии с коэффициентом event_type
:
require(ggplot2)
p1 <- ggplot(data = snb, aes(x = px, y = py, color = event_type)) +
geom_point(alpha = 0.5)
print(p1)
, а затем вы получите это:
Или, вы можете думать о построении это как тепловая карта с использованием geom_bin2d()
и черчения фасетов (делянки) для каждого из различных event_type
, как это:
p2 <- ggplot(data = snb, aes(x = px, y = py)) +
geom_bin2d(binwidth = c(0.25, 0.25)) +
facet_wrap(~ event_type)
print(p2)
, что делает сюжет для каждого уровня фактора, где цвет будет количеством точек данных в каждом ящике, равным 0,25 с каждой стороны. Но, если у вас более 5 или 6 уровней, это может показаться довольно плохим. Из небольшой выборки данных, которую вы предоставили, я получил это
Если уровни факторов не имеет значения, есть некоторые хорошие примеры here участков с слишком много точек. Вы также можете попробовать посмотреть некоторые из примеров на ggplot website или R cookbook.
Так что же вы хотите, чтобы результат смотреть как если бы не то, что у вас уже есть? Кроме того, вы могли бы предоставить некоторые данные с примерными примерами? – thelatemail
Вы должны бить свои очки, чтобы получить меньше очков. смотрит на 'hexbin', даже неявно агрегировать размеры z (event_type). – agstudy
Иногда вы можете улучшить внешний вид, уменьшив размер «точек» с помощью cex = 0,1. В других случаях необходимо использовать индексирование в вектор прозрачных цветов. Ответьте на вопрос @ thelatemail, пожалуйста. –