import matplotlib.pyplot as plt
import numpy as np
# Datos de diámetro, eficiencia eléctrica y térmica (actualizados)
diameter = [0.015, 0.03, 0.045, 0.06, 0.075, 0.09]
electric_efficiency = [0.1612, 0.1609, 0.1605, 0.16, 0.1595, 0.159]
thermal_efficiency = [0.7305, 0.7303, 0.73, 0.7297, 0.7294, 0.7291]
# Tamaños de letra personalizables
title_fontsize = 22
axis_label_fontsize = 20
tick_label_fontsize = 20
legend_fontsize = 20
# Nuevos rangos solicitados
electric_efficiency_min = 0.158
electric_efficiency_max = 0.162
thermal_efficiency_min = 0.728
thermal_efficiency_max = 0.732
# Crear figura y ejes
fig, ax1 = plt.subplots(figsize=(12, 8))
# Graficar eficiencia eléctrica
ax1.plot(diameter, electric_efficiency, marker='o', color='blue', linestyle='-', linewidth=2, label='Eficiencia eléctrica')
ax1.set_ylabel('Eficiencia', fontsize=axis_label_fontsize)
ax1.tick_params(axis='both', labelsize=tick_label_fontsize)
ax1.set_xlabel('Diámetro del SRC-PVT (m)', fontsize=axis_label_fontsize)
ax1.set_ylim(electric_efficiency_min, electric_efficiency_max)
# Ticks del eje Y izquierdo
ax1.set_yticks(np.arange(electric_efficiency_min, electric_efficiency_max + 0.0001, 0.001))
# Eje X
ax1.set_xlim(0.01, 0.095)
ax1.set_xticks(diameter)
ax1.set_xticks([0.01, 0.02, 0.03, 0.045, 0.06, 0.075, 0.09], minor=True)
# Eficiencia térmica
ax2 = ax1.twinx()
ax2.plot(diameter, thermal_efficiency, marker='s', color='red', linestyle='-', linewidth=2, label='Eficiencia térmica')
ax2.set_ylabel('Eficiencia', fontsize=axis_label_fontsize)
ax2.set_ylim(thermal_efficiency_min, thermal_efficiency_max)
ax2.tick_params(axis='y', labelsize=tick_label_fontsize)
# Ticks eje derecho
ax2.set_yticks(np.arange(thermal_efficiency_min, thermal_efficiency_max + 0.0001, 0.001))
# Título
plt.title('', fontsize=title_fontsize)
# Leyenda combinada
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)
# Marcos
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 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: