Domanda

I sono l'attuazione di una tag cloud su un dispositivo mobile. I dettagli del modello di dati, ecc, non sono particolarmente importanti qui. La mia domanda riguarda la scala di tag:

Qual è l'espressione 'migliore' per mappare la frequenza tag Dimensione carattere?

Ho guardato questo post discutere lineare e scala logaritmica e questa risposta da Adrian Kuhn schizzo di un approccio polinomiale per l'ispirazione. Tuttavia, mi sembra di ricordare un post di qualche posto sull'interwebs con molto di più di esplorazione su questo tema.

Inoltre ho trovato un po ' " migliore pratiche " su un blog, anche se sono sicuro della provvidenza delle migliori pratiche. Questi fanno nessun commento su frequency scaling.

Quali alternative devo per il ridimensionamento tag, e che è il metodo preferito / norma? Sto anche pensando di fontsizes minimo, massimo numero di etichette, colori, ecc.

Edit: Come per la discussione in questa domanda , io sono interessato al tagcloud "standard", con variazioni dimensione del carattere.

È stato utile?

Soluzione

Ho lavorato su un piccolo progetto tag cloud lo scorso anno, in cui ho usato qualcosa sulla falsariga di

β = (int) (((maxθ - minθ) x ω) + minθ + 0.5)
dove ω è un coefficiente precedentemente calcolata secondo alcuni metrica (in frequenza carattere caso), e minθ maxθ sono limiti inferiore e superiore, e β è il valore finale. Questo può essere applicato a qualsiasi caratteristica visiva (dimensione, colore, peso, se supportati, ecc).

Ho trovato che lineare e la scala logaritmica tendenza a seconda del dato set di distribuzione. Nel set di dati con valori anomali di primo piano che ho trovato è stato utile per tanh 'smoothing' i valori risultanti.

Altri suggerimenti

V'è un eccellente discussione in questo pdf , che discute il ridimensionamento, il clustering, e troncando sui tags da visualizzare.

Una soluzione che ho trovato funziona bene è la seguente

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

dove X è il valore normalizzato che si desidera mappare sulla dimensione del carattere

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

questo aumenta differenziale formato per inferiori 3 quartili della gamma, tali da minimizzare l'effetto delle alte valori anomali

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top