Kjppmp's picture
matplot.ml
a5172eb verified
raw
history blame
1.46 kB
import matplotlib.pyplot as plt
import seaborn as sns
def plot_inertia_density(points, tuning_c=3.0):
# Ponownie obliczamy odchylenia (Z-scores) jak w g07dbc
theta = np.median(points, axis=0)
diff = np.abs(points - theta)
mad = np.median(diff, axis=0) / 0.67448
mad[mad == 0] = 1e-6
modified_z_score = 0.6745 * diff / mad
deviation_magnitude = np.linalg.norm(modified_z_score, axis=1)
# Tworzenie wykresu
plt.figure(figsize=(12, 6))
# Histogram g臋sto艣ci
sns.histplot(deviation_magnitude, kde=True, color="blue", bins=50, label="G臋sto艣膰 inercji")
# Linia progu relatywizmu (tuning_c)
plt.axvline(tuning_c, color='red', linestyle='--', linewidth=2, label=f'Pr贸g relatywizmu (c={tuning_c})')
# Opisy zgodne z Twoj膮 fizyk膮
plt.fill_betweenx([0, plt.gca().get_ylim()[1]], 0, tuning_c, color='blue', alpha=0.1, label='Strefa Klasycznej Inercji')
plt.fill_betweenx([0, plt.gca().get_ylim()[1]], tuning_c, max(deviation_magnitude), color='red', alpha=0.1, label='Strefa Relatywistyczna (Singularity)')
plt.title('Rozk艂ad G臋sto艣ci Inercji w Uk艂adzie', fontsize=15)
plt.xlabel('Magnituda odchylenia (Z-score / Bezw艂adno艣膰)', fontsize=12)
plt.ylabel('Liczba cz膮stek danych', fontsize=12)
plt.legend()
plt.grid(alpha=0.3)
plt.show()
# Uruchomienie analizy dla punkt贸w ze sceny Nerfies
plot_inertia_density(new_scene_manager.points, tuning_c=3.0)