2013-07-18 4 views
1

Я пытаюсь создать граф, потому что на графике есть так много точек, по краям зеленого он начинает исчезать до черного, а центр остается зеленым. Код, который я использую для создания этого графика:Условные графические и затухающие цвета

plot(snb$px,snb$pz,col=snb$event_type,xlim=c(-2,2),ylim=c(1,6)) 

Я искал контурную печать, но это не помогло. Цветовая переменная является фактор-переменной.

Спасибо!

graph

+3

Так что же вы хотите, чтобы результат смотреть как если бы не то, что у вас уже есть? Кроме того, вы могли бы предоставить некоторые данные с примерными примерами? – thelatemail

+1

Вы должны бить свои очки, чтобы получить меньше очков. смотрит на 'hexbin', даже неявно агрегировать размеры z (event_type). – agstudy

+0

Иногда вы можете улучшить внешний вид, уменьшив размер «точек» с помощью cex = 0,1. В других случаях необходимо использовать индексирование в вектор прозрачных цветов. Ответьте на вопрос @ thelatemail, пожалуйста. –

ответ

3

Это большая проблема для 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) 

, а затем вы получите это:

enter image description here

Или, вы можете думать о построении это как тепловая карта с использованием 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 уровней, это может показаться довольно плохим. Из небольшой выборки данных, которую вы предоставили, я получил это

enter image description here

Если уровни факторов не имеет значения, есть некоторые хорошие примеры here участков с слишком много точек. Вы также можете попробовать посмотреть некоторые из примеров на ggplot website или R cookbook.

+0

Мне нравится то, что у меня есть два upvotes с моим первоначальным неправильным кодом (теперь исправлено)! –

3

Прозрачность может помочь, что легко достигается, поскольку @BenBolker указывает, с adjustcolor:

colvect = adjustcolor(c("black", "green"), alpha = 0.2) 
plot(snb$px, snb$pz, 
    col = colvec[snb$event_type], 
    xlim = c(-2,2), 
    ylim = c(1,6)) 

Он встроен в ggplot:

require(ggplot2) 
p <- ggplot(data = snb, aes(x = px, y = pz, color = event_type)) + 
    geom_point(alpha = 0.2) 
print(p) 
+1

вам даже не нужен пакет * весов *; 'Colvec = AdjustColor (с ("красный", "зеленый", "синий"), альфа = 0,5); ... col = colvec [snb $ event_type] ... ' –

Смежные вопросы