2017-08-04 91 views
0

我想制作一个图表,使平均温度与降水相匹配,就像此链接中的内容https://www.r-bloggers.com/part-3a-plotting-with-ggplot2/一样。 geom_violin的平均温度和geom_point的降水量。我用我的数据,我做了这个图表。问题是我不希望降水量为0.0的值出现在图表上。基本上我所做的就是在代表降水点的大小的那一部分提出了一个条件,但是没有起作用。我用其他方式尝试过,但没有任何效果。添加条件geom_point ggplot2 R

ggplot(weather,aes(x = month, y = temp)) + 
geom_violin(fill = "orange") + 
geom_point(aes(size = precipitation >0), colour = "blue", 
position="jitter")+ 
ggtitle ("Temperature by month") + 
xlab("Month") + ylab ("temperature (ºC)") 

任何帮助将不胜感激, 感谢

+0

请提供一些数据,以便我们重现您的图形。请参阅https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – user3640617

回答

1

没有看到你的数据和假设precipitation是在你的数据变量设置weather,你可以绘制它这将消除在0值之前,子集数据从情节。

ggplot(weather, aes(x = month, y = temp)) + 
geom_violin(fill = "orange") + 
geom_point(data = weather[which(weather$precipitation>0),], 
      aes(size = precipitation >0), colour = "blue", 
position="jitter") + 
ggtitle ("Temperature by month") + 
xlab("Month") + 
ylab ("temperature (ºC)") 
+0

是降水它是我的数据集中的一个变量。但是,如果我做一个子集,我会从我的数据集中删除一些温度值。我想绘制没有零值的降水,但我不想删除包含零降水的行,因为。如果我这样做,我会删除一些温度值。 –

+0

好的,我会编辑我的上面的答案。除非另有指定,否则传递给'ggplot'命令的数据源将传递到所有'geom_'图层。 – kfurlong

+1

它的工作。非常感谢! –