zmiana kolorow wykresow

This commit is contained in:
Mateusz Gruszczyński
2025-07-31 21:47:15 +02:00
parent c97f419b20
commit 969a0565fa

19
app.py
View File

@@ -10,6 +10,7 @@ import hashlib
import re
import traceback
import bcrypt
import colorsys
from pillow_heif import register_heif_opener
from datetime import datetime, timedelta, UTC, timezone
@@ -782,8 +783,7 @@ def get_admin_expense_summary():
}
def category_to_color(name):
"""Generuje powtarzalny pastelowy kolor HEX na podstawie nazwy kategorii."""
""" def category_to_color(name):
hash_val = int(hashlib.md5(name.encode("utf-8")).hexdigest(), 16)
r = (hash_val & 0xFF0000) >> 16
g = (hash_val & 0x00FF00) >> 8
@@ -793,6 +793,21 @@ def category_to_color(name):
g = (g + 255) // 2
b = (b + 255) // 2
return f"#{r:02x}{g:02x}{b:02x}"
"""
def category_to_color(name):
# Hashuj nazwę kategorii, aby uzyskać deterministyczną barwę
hash_val = int(hashlib.md5(name.encode("utf-8")).hexdigest(), 16)
# Ustal odcień (hue) — pseudo-losowo, ale unikalnie dla każdej nazwy
hue = (hash_val % 360) / 360.0 # 0..1
# Wysoka saturacja (nasycenie, żeby kolor był wyrazisty, nie pastelowy)
saturation = 0.75 + ((hash_val >> 8) % 20) / 100.0 # 0.75 - 0.95
# Średnia jasność — nie za jasno, by nie kontrastować z białym tekstem, ale wyraźnie na ciemnym tle
lightness = 0.40 + ((hash_val >> 16) % 15) / 100.0 # 0.40 - 0.55
# Zamiana HLS → RGB
r, g, b = colorsys.hls_to_rgb(hue, lightness, saturation)
return f"#{int(r*255):02x}{int(g*255):02x}{int(b*255):02x}"
def get_total_expenses_grouped_by_category(