2013-03-31 3 views
3

Я хочу создать диаграмму рассеяния, точки которой не имеют заливки (или, что то же самое, с прозрачным заполнением).ggplot точки рассеяния без заполнения

# generate some random data for the scatterplot 
n <- 5 
f <- factor(1:n) 
df <- expand.grid(f1 = f, f2 = f) 
df <- transform(df, v1 = round(10 * runif(n ** 2))) 

# plot the scatterplot 
ggplot(df) + geom_point(aes(x = f1, y = f2, size = v1, fill = NA)) 

Установка fill в NA кажется логичным, но не работает. Я также пробовал NULL и "" безрезультатно.

ответ

9

Я думаю, что вы хотите играть с формой, но может быть неправильно:

ggplot(df) + geom_point(aes(x = f1, y = f2, size = v1), shape=1) 

Или, может быть ...

ggplot(df) + geom_point(aes(x = f1, y = f2, size = v1), fill="green", shape=21) 

, если вы хотите, чтобы заполнить цвет.

+2

Спасибо! Я прочитал исходный код ggplot2; 'fill = NA' - правильный способ удаления заливки. Но, когда форма по умолчанию является сплошным диском, заливку (или ее отсутствие) невозможно было увидеть. –

+0

Я смущен, это решает вашу проблему? –

+4

Да, да. Я просто использовал для будущей ссылки, что нет ничего синтаксически неправильного с 'fill = NA'; он удаляет любой цвет заливки. Тем не менее, это не влияет на 'shape = 19' по умолчанию (сплошной диск), так как« fill »уже является частью самой фигуры. Терминология сбивает с толку, но это не ваша вина! –

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