带R和GGR图的气候图

带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

我想做一个或一个使用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              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)