El clima del municipio está determinado por las diferencias de altitud de las serranías, la mayor parte del territorio, sobre todo al extremo sur y en las regiones más bajas en dirección noroeste, el clima es "Cálido subhúmedo con lluvias en verano", hacia el noroeste, el noreste y sureste, en las zonas de elevación media, el clima es "Semicálido subhúmedo con lluvias en verano", y en las regiones más elevadas del norte y noreste, el clima es "Templado subhúmedo con lluvias en verano"; la temperatura medial anual sigue exactamente el mismo patrón, las zonas bajas tiene un promedio entre 22 y 26 °C, la zona media 18 a 22 °C y las zonas más elevadas de 16 a 18 °C, además existen dos pequeñas zonas aún más elevadas donde el promedio es inferior a 16 °C, y por el contrario, en la rivera del río Grande de Santiago al suroeste, la temperatura media anual es superior a los 26 °C; la precipitación media anual de la zona este y suroeste es 800 a 1,000 mm, la zona sureste y una franja del noroeste tiene un promedio de 1,000 a 1,200 mm, finalmente la zona más occidental del municipio tiene un promedio de 1,200 a 1,500 mm.