Лучшая практика с TagClouds или TagCloud Logic? [закрыто
Вопрос
Какие хорошие метки облака логика, с которой вы придумали? как FONTSIZE = FACTOR * PLACE OFFOCCURATION ....
Решение
Вам нужно будет установить минимальный размер, так что, возможно, fontsize = minsize + factor * percentage
.
Вы можете ограничить диапазон размеров; Возможно, возьмите SQRT или журнал процента, но это зависит от вашего распределения.
Для другой техники взгляните на этот блог пост от поэтического кода на Теги облачных алгоритмов:
Далее в линейной интерполяции, как мы устанавливаем границы Min и Max для размера шрифта / цветной интенсивности? Например, я замечаю, что Amazon.com нанимает размеры шрифта от 80% до 280%. Итак, самая низкая тег в облаке получит размер шрифта 80% и самым высоким тегом 280%. Я решил пойти со следующей формулой
150 * (1.0+ (1,5 * M-Maxm / 2) / MaxM)
Это красиво дает размер шрифта от 75% до 300%, когда метрические изменения от потенциала 0 до MaxM.
Другие советы
Я бы проверил произошедший для каждого элемента и отслеживать «максимум» (элемент с наивысшим количеством, так как это будет ваша мера).
Затем рассчитайте процентное содержание в течение каждого элемента, по сравнению с элементом с максимальным (что 100%). Например:
foreach ($elements as $element) {
$percentage = floor(($element['count'] / $maximum) * 100);
}
Далее создавайте стили CSS для 20/40/60 / 80/100 процентных значений и нанесите правильный стиль CSS в соответствии с процентом.
Или вы можете, как вы предложили рассчитать размер шрифта.
Сначала получите свой максимум. и мин и рассчитать распространение. ($ max - $ min). Ваше увеличение размера шрифта будет «шаг» - в основном ($ max - $ min) / $ spreed.
Теперь вы можете подсчитать свои размеры шрифтов соответственно:
$min_size + ($element['occurrence'] - $smallest_array_value) * $step
Не забудьте раунд вашего результата.
Может ли написать вторую часть вам тег облачной реализации MIN и MAX и распространять, я немного запутался.
Я сделал облако TAG, рассчитанный так:
$v - incoming value,
$minV - minimal value from dataset,
$maxV - maximal value from dataset,
$minFS - minimum font size,
$maxFS - maximum font size,
function roundFontSize($v, $minV, $maxV, $minFS, $maxFS) {
return $minFS + floor($v / (($maxV - $minV) / ($maxFS - $minFS)));
}
Это позволяет вам круглым размерами шрифта в зависимости от ваших потребностей.
Размер шрифта никогда не превысит диапазон размеров шрифта в $ Minfsad $ maxfs.