6

Wdrażam chmury tagów na urządzeniu mobilnym. Szczegóły modelu danych itp. Nie są tutaj szczególnie ważne. Moje pytanie dotyczy skalowania tagów:Skalowanie tagów w chmurze tagów

Co to jest "najlepsze" wyrażenie do mapowania częstotliwości do rozmiaru czcionki?

Przyjrzałem się this post omawiając skalowanie liniowe i logarytmiczne oraz this answer ze szkicu Adrian Kuhn z podejścia wielomianowego dla inspiracji. Jednak wydaje mi się, że pamiętam, że miejsce w międzyczasie zostało umieszczone z dużo większą ilością informacji na ten temat.

Znalazłem też "best practices" na blogu, choć nie jestem pewien co do opatrzności najlepszych praktyk. Nie komentują one skalowania częstotliwości.

Jakie alternatywy mam dla skalowania znaczników i która jest preferowana/standardowa metoda? Rozważam także minimalne rozmiary czcionek, maksymalną liczbę znaczników, kolorów itp.

Edytuj: Zgodnie z dyskusją pod numerem this question, interesuje mnie "standardowy" tagcloud, z odmianami wielkości czcionki.

+0

Er, sprawdź prawą kolumnę tej strony - porządek według liczby malejących instancji, z numerem po prawej. Pracuje dla mnie. – Benjol

Odpowiedz

3

Pracowałem w małej Chmura tagów projektu w ubiegłym roku, w którym kiedyś coś wzdłuż linii

P = (int) (((maxθ - minθ) x ω) + minθ + 0,5)
gdzie Ohm to ważenie uprzednio obliczone według pewnej miary (w twoim przypadku częstotliwość czcionki), minθ i maxθ są dolnymi i górnymi granicami, a β jest wartością końcową. Można to zastosować do dowolnej cechy wizualnej (rozmiar czcionki, kolor, waga, jeśli są obsługiwane, itp.).

Zauważyłem, że skalowanie liniowe i logarytmiczne jest zależne od rozkładu zestawu danych. W zestawach danych z wybitnymi wartościami odstającymi odkryłem, że tanh był użyteczny do "wygładzenia" wynikowych wartości.

+0

To jest skalowanie liniowe, z którym w końcu poszedłem. Świetny pomysł re: tanh, popatrzę na to dalej. – jamesh

2

Istnieje doskonała dyskusja w this pdf, która omawia skalowanie, tworzenie klastrów i obcinanie znaczników do wyświetlenia.

0

Rozwiązanie znalazłem prace ładnie wygląda następująco

font_size = (max_font_size - min_font_size) * (Math.sin(1.5*(X)) + minsize

gdzie X jest znormalizowaną wartość chcesz mapować na rozmiar czcionki

X = (this_value-min_value)/(max_value-min_value)

zwiększa rozmiar dyferencjał dla niższe 3 kwartyle zakresu, tak aby zminimalizować efekt wysokich wartości odstających