Почему ggplot2 не позволяет мне устанавливать размер для каждой отдельной точки? - PullRequest
3 голосов
/ 07 июля 2010

У меня точечный график. Я бы хотел масштабировать размер каждой точки по частоте. Итак, у меня есть столбец частоты такой же длины. Однако если я сделаю:

... + geom_point(size=Freq)

Я получаю эту ошибку:

When _setting_ aesthetics, they may only take one value. Problems: size

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

Обновление: данные здесь Основной код, который я использовал:

dcount=read.csv(file="New_data.csv",header=T)
ggplot(dcount,aes(x=Time,y=Counts)) + geom_point(aes(size=Freq))

Ответы [ 3 ]

3 голосов
/ 07 июля 2010

Вы пробовали ..

+ geom_point(aes(size = Freq))

Эстетика mapped для переменных в данных с помощью функции aes. Проверить http://had.co.nz/ggplot2/geom_point.html

2 голосов
/ 07 июля 2010

хорошо, это может быть то, что вы ищете. Код, который вы предоставили выше, объединяет информацию в четыре категории. Если вы не хотите этого, вы можете указать категории с помощью scale_size_manual().

sizes <- unique(dcount$Freq)
names(sizes) <- as.character(unique(dcount$Freq))

ggplot(dcount,aes(x=Time,y=Counts)) + geom_point(aes(size=as.factor(Freq))) + scale_size_manual(values = sizes/2)
1 голос
/ 07 июля 2010

Если код, данный gd047, не работает, я бы дважды проверил, что ваш столбец Freq на самом деле называется Freq и что в вашем рабочем пространстве нет другого объекта с именем Freq. Кроме этого, код должен работать. Откуда ты знаешь, что шкала не имеет ничего общего с частотой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...