Вопрос

Я внедряю облако тегов на мобильном устройстве.Детали модели данных и т.д. Здесь не особенно важны.Мой вопрос касается масштабирования тегов:

Какое "лучшее" выражение для сопоставления частоты тегов с размером шрифта?

Я посмотрел на этот пост обсуждение линейного и логарифмического масштабирования и этот ответ от Адриана Куна набросок полиномиального подхода для вдохновения.Тем не менее, я, кажется, припоминаю пост где-то в Интернете с гораздо большим исследованием этого вопроса.

Я тоже кое - что нашел " .лучшие практики" в блоге, хотя я и не уверен в провидении лучших практик.Они не дают никаких комментариев по поводу масштабирования частоты.

Какие альтернативы у меня есть для масштабирования тегов и какой метод является предпочтительным / стандартным?Я также рассматриваю минимальные размеры шрифтов, максимальное количество тегов, цветов и т.д.

Редактировать:В соответствии с обсуждением в этот вопрос, меня интересует "стандартное" облако тегов с вариациями размера шрифта.

Это было полезно?

Решение

В прошлом году я работал над небольшим проектом по облаку тегов, в котором я использовал что-то вроде

β = (int) (((maxθ - minθ) x ω) + minθ + 0,5)
где ω - взвешивание, ранее рассчитанное в соответствии с некоторой метрикой (в вашем случае частотой шрифта), minθ и maxθ - нижняя и верхняя границы, а β - конечное значение.Это может быть применено к любой визуальной характеристике (размер шрифта, цвет, вес, если поддерживается, и т.д.).

Я обнаружил, что линейное и логарифмическое масштабирование, как правило, зависит от распределения наборов данных.В наборах данных с заметными выбросами я обнаружил, что tanh полезен для "сглаживания" результирующих значений.

Другие советы

Есть отличная дискуссия в этот pdf-файл, в котором обсуждаются масштабирование, кластеризация и усечение отображаемых тегов.

Решение, которое, как я нашел, прекрасно работает, заключается в следующем

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

где X - нормализованное значение, которое вы хотите сопоставить с размером шрифта

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

это увеличивает разницу в размерах для нижних 3 квартилей диапазона, например, чтобы свести к минимуму влияние высоких выбросов

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top