import matplotlib.pyplot as plt

# Datos proporcionados
meses = list(range(1, 13))
temp_ambiente = [18.75, 22.85, 29.15, 33.55, 32.45, 37.75, 35.75, 35.25, 33.35, 24.05, 18.05, 18.55]
temp_cielo = [10.75, 14.85, 21.15, 25.55, 24.45, 29.75, 27.75, 27.25, 25.35, 16.05, 10.05, 10.55]
radiacion_total = [629.3, 813.5, 934.2, 1009, 1061, 1019, 990.8, 932.8, 887.5, 780.2, 652.5, 560.2]
radiacion_directa = [537.6, 706.1, 806.3, 877.9, 919.6, 892.5, 876.8, 823.9, 783.1, 680.6, 570.5, 485.2]

# Configuración del gráfico
fig, ax1 = plt.subplots(figsize=(10.67, 8))  # Tamaño en pulgadas para una escala 4:3 y resolución 800x600

# Radiaciones en el eje izquierdo
color1 = 'tab:blue'
ax1.set_xlabel('Mes', fontsize=22)
ax1.set_ylabel('Radiación (W/m²)', fontsize=22, color=color1)
ax1.plot(meses, radiacion_total, marker='o', color='red', markersize=8, linestyle='-', linewidth=2, label='Radiación total')
ax1.plot(meses, radiacion_directa, marker='s', color='blue', markersize=8, linestyle='-', linewidth=2, label='Radiación directa')
ax1.tick_params(axis='y', labelcolor=color1)
ax1.set_ylim(450, 1200)  # Rango ligeramente más grande en el eje y

# Temperaturas en el eje derecho
ax2 = ax1.twinx()
color2 = 'tab:green'
ax2.set_ylabel('Temperatura (°C)', fontsize=22, color=color2)
ax2.plot(meses, temp_ambiente, marker='^', color='green', markersize=8, linestyle='-', linewidth=2, label='Temp. Ambiente')
ax2.plot(meses, temp_cielo, marker='d', color='purple', markersize=8, linestyle='-', linewidth=2, label='Temp. de cielo')
ax2.tick_params(axis='y', labelcolor=color2)
ax2.set_ylim(5, 45)  # Rango ligeramente más grande en el eje y para las temperaturas

# Título del gráfico
plt.title('Datos meteorológicos de Mexicali', fontsize=22)

# Leyenda en la parte superior izquierda
lines, labels = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax1.legend(lines + lines2, labels + labels2, loc='upper left', fontsize=16, bbox_to_anchor=(0, 1))

# Ajustes de los bordes de los ejes
ax1.spines['top'].set_linewidth(1.5)
ax1.spines['right'].set_linewidth(1.5)
ax1.spines['bottom'].set_linewidth(1.5)
ax1.spines['left'].set_linewidth(1.5)

plt.xticks(meses, fontsize=18)
plt.yticks(fontsize=18)

plt.tight_layout()

# Guardar la figura con la resolución especificada
plt.savefig('grafico_datos_meteorologicos_mexicali.png', dpi=100)

plt.show()

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: