2010-09-12 81 views
1

alt text您好所有, 我有以下熔融数据:如何从ggplot2包中仅绘制geom_point中的一系列值?

X  variable  value  
1 StationA SAR11.cluster 0.001309292 
2 StationB SAR11.cluster 0.002712237 
3 StationC SAR11.cluster 0.002362708 
4 StationD SAR11.cluster 0.002516751 
5 StationE SAR11.cluster 0.004301075 
6 StationF SAR11.cluster 0.0 

. 
. 
. 
etc. 
etc. 

我用下面的代码以图表的数据的BubbleChart中:

ggplot(foomelt, aes(x=foomelt$Station, y=variable, angle=45, size=(value))) + 
+geom_point() + opts(theme_bw(), axis.text.x = theme_text(size=10, angle = 70)) 
+ scale_area() 

一切都很好,除了我想要忽略0(零)值,并且仅用于所有那些大于零和最大值之间的点值的缩放。 我不想从数据中删除零值行,因为为了证明一个点,我希望包含所有的站点和变量,并将零值保留为空白。

我设法用它来忽略零值,但调整不起作用:

ggplot(foomelt, aes(x=foomelt$Station, y=variable, angle=45, size=(value>0))) + 
    + geom_point() + opts(theme_bw(), axis.text.x = theme_text(size=10, angle = 70)) 
    + scale_area("Ratio") + scale_size_identity() 

任何帮助,将不胜感激。

回答

7

我不知道如果这是你在找什么,但一个方法忽略零个值而绘制的点是修改geom_point()语句

geom_point(subset = .(value > 0)) 

此行只有通行证要绘制的数据帧中的非零值。 (!感谢)

+0

工作!谢谢。 – 2010-09-13 09:57:49

+0

@ Schrodinger'sCat请接受这个答案! – plaes 2012-01-17 18:15:34

+0

你将如何使用这个子集函数来处理非数字值,例如列条目为狗的列动物。 – KLDavenport 2013-01-02 21:41:33

-1

只是为了展示如何使用Ramnath的建议(所以要帮助新手像我一样):

foo= read.csv('~/Desktop/foo.csv', header=T) 
foomelt = melt(foo) 
foomelt$Station<-factor(foomelt$Station, levels=unique(as.character(foo[[1]]))) #to keep the order of the x axis the same 
                       # as in the original file` 
bigfoo <- subset(foomelt, value > 0) #use only those values that are larger than 0 
ggplot(bigfoo, aes(x=bigfoo$Station, y=variable, angle=45, size=(value))) + geom_point() 
+ opts(theme_bw(), axis.text.x = theme_text(size=9, angle = 90)) + scale_area()