zmiana kolorow wykresow
This commit is contained in:
19
app.py
19
app.py
@@ -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(
|
||||
|
Reference in New Issue
Block a user