import matplotlib.pyplot as plt

# Datos de flujo másico, eficiencia eléctrica y térmica
mass_flow = [0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.14, 0.16, 0.18]
electric_efficiency = [0.1607, 0.1715, 0.1752, 0.177, 0.1781, 0.1788, 0.1793, 0.1797, 0.18]
thermal_efficiency = [0.5625, 0.5574, 0.5554, 0.5544, 0.5537, 0.5533, 0.553, 0.5527, 0.5526]

# 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_efficiency_min = 0.155
electric_efficiency_max = 0.185
thermal_efficiency_min = 0.55
thermal_efficiency_max = 0.567

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

# Graficar eficiencia eléctrica
ax1.plot(mass_flow, electric_efficiency, marker='o', color='blue', linestyle='-', linewidth=2, label='Electric efficiency')
ax1.set_ylabel('Efficiency', fontsize=axis_label_fontsize)
ax1.tick_params(axis='both', labelsize=tick_label_fontsize)
ax1.set_xlabel('Mass flow of HTF (kg/s)', fontsize=axis_label_fontsize)
ax1.set_ylim(electric_efficiency_min, electric_efficiency_max)  # Ajuste manual del límite del eje Y izquierdo

# Ajustar los límites y ticks del eje X
ax1.set_xlim(0, 0.2)  # Ajustar los límites para incluir los valores de flujo másico
ax1.set_xticks(mass_flow)  # Asegurar que los ticks coincidan con los datos

# Crear segundo eje Y para la eficiencia térmica
ax2 = ax1.twinx()
ax2.plot(mass_flow, thermal_efficiency, marker='s', color='red', linestyle='-', linewidth=2, label='Thermal efficiency')
ax2.set_ylabel('Efficiency', fontsize=axis_label_fontsize)
ax2.set_ylim(thermal_efficiency_min, thermal_efficiency_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()

Embed on website

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