import matplotlib.pyplot as plt

# Nuevos datos de potencia en función del ancho, ahora en kW
ancho = [0.03, 0.06, 0.09, 0.12]
potencia_electrica = [1858/1000, 1791/1000, 1750/1000, 1721/1000]  # Convertir a kW
potencia_termica = [4868/1000, 5041/1000, 5182/1000, 5309/1000]  # Convertir a kW

# Tamaños de letra personalizables
etiqueta_eje_fontsize = 20
etiqueta_ticks_fontsize = 20
leyenda_fontsize = 20

# Crear una figura y ejes
fig, ax1 = plt.subplots(figsize=(12, 8))

# Graficar potencia eléctrica
ax1.plot(ancho, potencia_electrica, marker='o', color='blue', linestyle='-', linewidth=2, label='Potencia Eléctrica')
ax1.set_ylabel('Potencia Eléctrica (kW)', fontsize=etiqueta_eje_fontsize)
ax1.tick_params(axis='both', labelsize=etiqueta_ticks_fontsize)
ax1.set_xlabel('Longitud de la cara del SRC-PVT (m)', fontsize=etiqueta_eje_fontsize)
ax1.set_ylim(1.7, 1.9)  # Ajuste del límite del eje Y izquierdo (kW)

# Ajustar el límite del eje X de 0 a 0.15 con saltos de 0.03, omitiendo 0 y 0.15
ax1.set_xlim(0, 0.15)
ax1.set_xticks([0.03, 0.06, 0.09, 0.12])  # Ajustar ticks del eje X

# Formato para el eje Y izquierdo con dos decimales
ax1.yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: f'{x:.2f}'))

# Crear segundo eje Y para la potencia térmica
ax2 = ax1.twinx()
ax2.plot(ancho, potencia_termica, marker='s', color='red', linestyle='-', linewidth=2, label='Potencia Térmica')
ax2.set_ylabel('Potencia Térmica (kW)', fontsize=etiqueta_eje_fontsize)
ax2.set_ylim(4.8, 5.4)  # Ajuste del límite del eje Y derecho (kW)

# Ajustar los ticks manualmente en el eje Y derecho
ax2.set_yticks([4.8, 4.9, 5.0, 5.1, 5.2, 5.3, 5.4])  # Asegurando que todos los valores estén presentes

# Formato para el eje Y derecho con dos decimales
ax2.yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: f'{x:.2f}'))

# Integrar leyendas en un solo cuadro a la izquierda
lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax1.legend(lines1 + lines2, labels1 + labels2, loc='upper left', fontsize=leyenda_fontsize, frameon=True)

# Ajustar el tamaño de la numeración del eje Y derecho
ax2.tick_params(axis='y', labelsize=20)

# Eliminar el grid
ax1.grid(False)

# Acentuar el marco del gráfico en todos los lados
for spine in ax1.spines.values():
    spine.set_edgecolor('black')
    spine.set_linewidth(2)

for spine in ax2.spines.values():
    spine.set_edgecolor('black')
    spine.set_linewidth(2)

# Ajustar el diseño
fig.tight_layout()

# Mostrar el gráfico
plt.show()

Embed on website

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