%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
# données brute
# en colonne ou en une ligne, virgule ou point décimal et espace pour séparer:
courant = ' 1,2 1,15 1,1 1,02 1 0,8 -0.8 -1.2' # en mA, remplacez par vos valeurs!
tension = ' 0.65 0.6 0.5 0.45 0.4 0.35 -0.35 -0.65' # en V, remplacez par vos valeurs!
############################
# ceci va remplacer les virgules par des points pour les décimales, au besoin:
courant = courant.replace(',','.')
tension = tension.replace(',','.')
# ceci va transformer les strings en array numpy:
courant = np.fromstring(courant, dtype=float, sep=' ')
tension = np.fromstring(tension, dtype=float, sep=' ')
# data validation: même nombre de données?
nombres_data = [len(elem) for elem in [courant, tension]]
if len(set(nombres_data)) != 1:
print('Vérifiez le nombre de données: %s'%nombres_data)
raise ValueError()
# incertitudes à modifier!
incert_courant_abs = 0.01 + 0.10 * abs(courant) # à substituer par les spec du manufacturier pour UNI-T
incert_tension_abs = 0.02 + 0.15 * abs(tension) # à substituer par les spec du manufacturier pour Amprobe
# figure:
plt.figure(figsize=(5,3))
plt.errorbar(courant, tension, xerr = incert_tension_abs, marker='o', ls='none',
yerr = incert_courant_abs , ms=3)
plt.grid()
plt.title("Courbe caractéristique IV d'une résistance")
plt.ylabel('Courant(mA)')
plt.xlabel('Tension(V)')
plt.savefig('grapheIV.pdf', bbox_inches='tight') # sauvegardé dans le rep
plt.show()
Revised on September 12, 2018 22:23:57
by
Anonymous Coward