我的r代码绘制了上面的图表
p <- ggplot() +
geom_point(data=data2, aes(x=df, y=dn, size=avgdice^3, fill = log2(tsSTDCommoncrawl)), shape=21)
p <- p + xlab("document fraction between commoncrawl and directcrawl") +
ylab("document number in commoncrawl") +
labs(fill="timestamp \nvariance",size ="average \ndice value")
因此size
和fill
会在代码中缩放。但我希望图表右侧的图例显示avgdice
和tsSTDCommoncrawl
的原始值,而不是avgdice^3
和log2(tsSTDCommoncrawl)
值。
答案 0 :(得分:0)
这将需要两个步骤。您必须弄清楚ggplot放置中断的位置,然后手动将它们输入scale
调用。我们来使用虹膜数据集。我想用Sepal.Length立方体添加另一个列来强调大小差异:
example=iris
example$sizes=example$Sepal.Length^3
现在我可以绘制它:
gplot(example, aes(x=Petal.Length, y=Petal.Width))+
+ geom_point(aes(size=sizes))+
+ scale_size_continuous(range=c(1,10))
传说中断为100,200,300和400.所以我只需要使用scale
和breaks
来调查labels
来电中那些的立方根。 :
> ggplot(example, aes(x=Petal.Length, y=Petal.Width))+
+ geom_point(aes(size=sizes))+
+ scale_size_continuous(range=c(1,10), breaks=c(100, 200, 300, 400), labels=c(100, 200, 300, 400)^(1/3))
您也可以使用文本标签的向量,只要元素的数量等于中断的数量。