import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# --- Données (à personnaliser) ---
D = [2.1, 4.0, 6.1, 8.2, 9.9, 12.1]  # abscisses
L = [1, 2, 3, 4, 5, 6]               # ordonnées

# --- Affichage du tableau de valeurs ---
df = pd.DataFrame({'D': D, 'L': L})
print("Tableau des valeurs :\n")
print(df)

# --- Régression forcée par l'origine : L = a * D ---
# On minimise l'erreur quadratique en imposant b = 0
D_array = np.array(D)
L_array = np.array(L)
a = np.dot(D_array, L_array) / np.dot(D_array, D_array)
eq_text = f"L = {a:.2f} × D"
print(f"\nÉquation de la droite de tendance passant par l'origine : {eq_text}")

# --- Tracé ---
plt.figure(figsize=(8, 5))
plt.scatter(D, L, color='blue', label='Données')
plt.plot(D, a * D_array, color='red', label='Tendance linéaire (origine)')

# --- Affichage de l'équation sur le graphe ---
x_pos = min(D) + (max(D) - min(D)) * 0.05
y_pos = a * x_pos
plt.text(x_pos, y_pos, eq_text, color='red', fontsize=12, bbox=dict(facecolor='white', edgecolor='black'))

# --- Mise en forme ---
plt.title(" L en fonction de D")
plt.xlabel("D")
plt.ylabel("L")
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()
