大家好, 我有以下熔融数据:
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.
我使用以下代码绘制数据的气泡图:
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()
任何帮助将不胜感激。
答案 0 :(得分:7)
我不确定这是否是您正在寻找的,但是在绘制点时忽略零值的一种方法是将geom_point()语句修改为
geom_point(subset = .(value > 0))
此行仅传递要绘制的数据框中的非零值。
答案 1 :(得分:0)
只是为了展示我如何使用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()