import matplotlib.pyplot as plt
# Datos de longitud, potencia eléctrica y térmica
lengths = [7, 8, 9, 10, 11, 12, 13]
electric_power = [1.212, 1.383, 1.554, 1.723, 1.892, 2.061, 2.229]
thermal_power = [3.708, 4.241, 4.774, 5.307, 5.841, 6.375, 6.909]
# Tamaños de letra personalizables
title_fontsize = 22
axis_label_fontsize = 20
tick_label_fontsize = 20
legend_fontsize = 20
# Definir manualmente los rangos de los ejes Y
electric_power_min = 1.0
electric_power_max = 2.4
thermal_power_min = 3.5
thermal_power_max = 7.0
# Crear una figura y ejes
fig, ax1 = plt.subplots(figsize=(12, 8))
# Graficar potencia eléctrica
ax1.plot(lengths, electric_power, marker='o', color='blue', linestyle='-', linewidth=2, label='Potencia eléctrica')
ax1.set_ylabel('Potencia (kW)', fontsize=axis_label_fontsize)
ax1.tick_params(axis='both', labelsize=tick_label_fontsize)
ax1.set_xlabel('Longitud de la tubería del SRC-PVT (m)', fontsize=axis_label_fontsize)
ax1.set_ylim(electric_power_min, electric_power_max) # Ajuste manual del límite del eje Y izquierdo
# Ajustar los límites y ticks del eje X con márgenes
x_margin = 0.5 # Márgenes en el eje X
ax1.set_xlim(min(lengths) - x_margin, max(lengths) + x_margin) # Añadir márgenes a la izquierda y derecha
ax1.set_xticks(lengths) # Asegurar que los ticks coincidan con los datos
# Crear segundo eje Y para la potencia térmica
ax2 = ax1.twinx()
ax2.plot(lengths, thermal_power, marker='s', color='red', linestyle='-', linewidth=2, label='Potencia térmica')
ax2.set_ylabel('Potencia (kW)', fontsize=axis_label_fontsize)
ax2.set_ylim(thermal_power_min, thermal_power_max) # Ajuste manual del límite del eje Y derecho
ax2.tick_params(axis='y', labelsize=tick_label_fontsize)
# Título del gráfico
plt.title('', fontsize=title_fontsize)
# 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=legend_fontsize, frameon=True)
# Acentuar el marco del gráfico
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()
To embed this program on your website, copy the following code and paste it into your website's HTML: