Het klimaat varieert sterk door de grote hoogteverschillen. Het noorden heeft een hooggebergteklimaat met strenge winters en koele zomers. Het midden van het land (1.500 tot 3.000 meter hoogte) heeft een koel gematigd klimaat. In het zuiden tot 1500 meter boven de zeespiegel heerst een vochtig, subtropisch klimaat met temperaturen van 15°C-30°C.