带R和GGR图的气候图
我想做一个或一个使用ggplot 我的数据看起来像带R和GGR图的气候图,r,ggplot2,R,Ggplot2,我想做一个或一个使用ggplot 我的数据看起来像 > data.df mese Temperatura.media pioggia 1 Jan -0.3 46.6 2 Feb 2.6 40.9 3 Mar 7.1 68.5 4 Apr 11.5 72.5 5 May 15.6 92.0 6 Jun
> data.df
mese Temperatura.media pioggia
1 Jan -0.3 46.6
2 Feb 2.6 40.9
3 Mar 7.1 68.5
4 Apr 11.5 72.5
5 May 15.6 92.0
6 Jun 19.1 79.6
7 Jul 21.4 79.2
8 Aug 20.6 81.2
9 Sep 17.2 85.4
10 Oct 11.3 98.9
11 Nov 4.9 93.7
12 Dec 0.8 52.1
我有
data.df$mese<-month(data.df$mese, label = T)
climagg<-ggplot(data=data.df)+
geom_bar(aes(x=mese, y=pioggia),stat = "identity")
climagg
data.df$mese
这是可能的,因为ggplot 2.2.0——关键是第二个轴是另一个轴的简单变换。在气候图中,温度升高10摄氏度必须通过降水量增加20毫米来补偿,否则植物生长会受到降水量的限制
库(“tidyverse”)
data.df是的,但似乎没有找到解决方案…:-SIt根本没有在ggplot2中实现。你必须用网格函数破解一些东西。对于这样简单的示例,最好使用基本图形。
ggtheme<-theme(strip.text.x = element_text(size=14),
strip.text.y = element_text(size=14),
legend.title = element_text(size=14),
panel.background = element_blank()
)
pioggiagg<-ggplot(data=data.df)+
geom_bar(aes(x=mese.asdate, y=pioggia),stat = "identity",fill="#67a9cf")+
geom_text(aes(x=mese.asdate, y=pioggia+3, label=pioggia),size=4)+
theme(axis.text.y=element_blank(),
axis.title.y = element_blank(),
axis.ticks = element_blank(),
axis.title.x = element_text(face="bold", size=12))+
scale_x_discrete("")+
ggtheme
pioggiagg
tempgg<-ggplot()+
geom_bar(data=data.df,aes(x=mese.asdate, y=pioggia),stat = "identity",alpha=0)+
geom_bar(data=data.df,aes(x=mese.asdate, y=temp_max),stat = "identity",alpha=0)+
geom_bar(data=data.df,aes(x=mese.asdate, y=temp_mini),stat = "identity",alpha=0)+
geom_rect(data=data.df,stat = "identity",aes(xmin=mese-0.4, xmax=mese+0.4,ymin=temp_mini, ymax=temp_max),fill="#ef8a62")+
geom_text(data=data.df,aes(x=mese.asdate, y=temp_mini-3, label=temp_mini),size=4)+
geom_text(data=data.df,aes(x=mese.asdate, y=temp_max+3, label=temp_max),size=4)+
theme(axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.ticks = element_blank(),
axis.text.x=element_blank(),
axis.text.y=element_blank())+
ggtheme
tempgg
multiplot(tempgg,pioggiagg,cols=1)