import numpy as np import matplotlib.pyplot as plt # --- Dane eksperymentalne --- # Dwie serie: prądy I_S (mA) w funkcji napięcia U_GS (V) dla różnych U_DS. uds_const_a = np.array([ [0.0, -0.29, -0.75, -0.98, -1.41, -1.85, -2.28, -2.65, -3.09, -3.63, -4.32], [10.2, 9.7, 8.2, 7.6, 6.4, 5.2, 4.0, 3.0, 2.0, 1.0, 0.2], ]) uds_const_b = np.array([ [0.0, -0.27, -0.56, -0.87, -1.12, -1.39, -1.67, -2.0, -2.36, -2.9, -3.48, -4.27, -4.95], [13.6, 12.4, 11.2, 10.0, 9.0, 8.0, 7.0, 5.8, 4.4, 3.0, 1.6, 0.4, 0.0], ]) # --- Parametry wykresu --- # Matplotlib przyjmuje rozmiar figury w calach. 1 cal = 2.54 cm cm = 1/2.54 fig_width_in = 12 * cm fig_height_in = 9 * cm # --- Tworzenie figury i osi --- # figsize w calach; constrained_layout=True poprawia rozmieszczenie elementów (etykiet, legendy). fig, ax = plt.subplots(1, 1, figsize=(fig_width_in, fig_height_in), constrained_layout=True) # --- Rysowanie serii danych --- ax.plot(uds_const_b[0, :], uds_const_b[1, :], marker='d', color='red', linewidth=1.0, markersize=5, label=r"$U_{DS} = 5.0$ V") ax.plot(uds_const_a[0, :], uds_const_a[1, :], marker='o', color='blue', linewidth=1.0, markersize=5, label=r"$U_{DS} = 2.0$ V") # --- Linie pomocnicze --- ax.axvline(0.0, color='k', linestyle='--', linewidth=1.0) ax.axhline(0.0, color='k', linestyle='--', linewidth=1.0) # --- Opisy osi i tytuł --- ax.set_xlabel(r"$U_{GS}$ (V)", fontsize=10) ax.set_ylabel(r"$I_{D}$ (mA)", fontsize=10) ax.set_title("Tranzystor n-JFET", fontsize=11) ax.tick_params(axis='both', labelsize=9) # --- Legenda --- ax.legend(fontsize=10) # --- Zakresy osi --- ax.set_xlim(-6, 1) ax.set_ylim(-1, 15) # --- Siatka opcjonalna --- ax.grid(True, linestyle=':', linewidth=0.7, alpha=0.6) # --- Zapis do pliku PNG --- plt.savefig('tranzystor_njfet_uds_const.png', dpi=300, bbox_inches='tight') # --- Podlgąd wykresu --- plt.show()