为什么ggplot2不允许我为每个点设置大小?

时间:2010-07-06 20:45:10

标签: r ggplot2

我有一个散点图。我想按频率调整每个点的大小。所以我有一个相同长度的频率列。但是,如果我这样做:

... + geom_point(size=Freq)

我收到此错误:

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

我解释为所有点只能有1个大小。那我怎么做我想要的呢?

更新:数据为here 我使用的基本代码是:

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

3 个答案:

答案 0 :(得分:3)

你试过..

+ geom_point(aes(size = Freq))

对于具有mapped函数的数据中的变量,美学是aes。查看http://had.co.nz/ggplot2/geom_point.html

答案 1 :(得分:2)

好的,这可能就是你要找的东西。您在上面提供的代码将信息聚合为四个类别。如果您不想这样,可以使用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)

答案 2 :(得分:1)

如果代码gd047提供的内容不起作用,我会仔细检查您的Freq列是否实际调用Freq,并且您的工作区没有其他名为{{1}的对象}。除此之外,代码应该工作。你怎么知道音阶与频率无关?