6

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

Что такое «лучшее» выражение для отображения частоты тегов на размер шрифта?

Я посмотрел на this post обсуждение линейного и логарифмическое масштабирования и this answer от Adrian Kuhn эскиза полиномиального подхода к вдохновению. Тем не менее, я, кажется, помню, какое место занимает место в interwebs с гораздо большим количеством исследований по этой проблеме.

Я также нашел несколько «best practices» в блоге, хотя я не уверен в провидении лучших практик. Они не комментируют частотное масштабирование.

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

Редактировать: Согласно обсуждению в this question, меня интересует «стандартный» tagcloud с изменениями размера шрифта.

+0

Er, проверьте правый столбец этого сайта - порядок по количеству экземпляров по убыванию, с номером справа. Работает на меня. – Benjol

ответ

3

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

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

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

+0

Это линейное масштабирование, с которым я в конце концов пошел. Отличная идея: tanh, я буду смотреть на это дальше. – jamesh

2

Существует отличное обсуждение в this pdf, в котором обсуждается масштабирование, кластеризация и усечение на тегах для отображения.

0

Решение я нашел хорошо работает следующим образом

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

, где Х представляет собой нормированное значение, которое вы хотите отобразить на размер шрифта

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

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

Смежные вопросы