tamaño letra font español algorithm math tags tag-cloud

algorithm - letra - font size html español



¿Cuál es la fórmula para calcular el tamaño de fuente de las etiquetas en un tagcloud? (4)

Para que la respuesta de @ Delan sea más clara, creé algunos ejemplos en idiomas con los que estoy familiarizado.

Ejemplo en Javascript

var tags = [ { Name: "c#", Uses: 100 }, { Name: ".net", Uses: 75 }, { Name: "typescript", Uses: 50 }, { Name: "lua", Uses: 50 }, { Name: "javascript", Uses: 25 }, { Name: "jquery", Uses: 1 }, { Name: "c++", Uses: 0 }, ]; var max = 100; // Should be computed var min = 0; // Should be computed var fontMin = 10; var fontMax = 20; for (var i in tags) { var tag = tags[i]; var size = tag.Uses == min ? fontMin : (tag.Uses / max) * (fontMax - fontMin) + fontMin; }

Ejemplo en C #

var tags = new List<Tag> { new Tag { Name = "c#", Uses = 100 }, new Tag { Name = ".net", Uses = 75 }, new Tag { Name = "typescript", Uses = 50 }, new Tag { Name = "lua", Uses = 50 }, new Tag { Name = "javascript", Uses = 25 }, new Tag { Name = "jquery", Uses = 5 }, new Tag { Name = "c++", Uses = 5 }, }; int max = tags.Max(o => o.Uses); int min = tags.Min(o => o.Uses); double fontMax = 20; double fontMin = 10; foreach (var tag in tags) { double size = tag.Uses == min ? fontMin : (tag.Uses / (double)max) * (fontMax - fontMin) + fontMin; }

Tengo una nube de etiquetas y necesito saber cómo puedo cambiar el tamaño de fuente de las etiquetas más utilizadas.

Necesito establecer un tamaño de fuente mínimo y un tamaño de fuente máximo.


Podría usar una evaluación lineal o logarítmica del número de elementos asociados con una determinada etiqueta en relación con la etiqueta más grande, multiplicarla por la diferencia entre los tamaños de fuente mínimo y máximo, y luego agregarla al tamaño de fuente mínimo. Por ejemplo, las matemáticas en pseudocódigo pueden ser:

let min = 12, max = 24 for each tag font = (items / items in biggest tag) * (max - min) + min


Se me ocurrió esto:

max_word_count = 412 # should count from list min_word_count = 44 # should count from list difference = max_word_count - min_word_count min_weight = 99 / difference * min_word_count for each tag weight = 99 / difference * this_word_count - min_weight + 1

Lo que me dio palabras ponderadas entre 1 y 100. Funciona perfectamente para mí en znaci.net/arhiv .

Exención de responsabilidad: No soy bueno en matemáticas.


Tratar:

<div data-i2="fontSize:[10,30]"> <span data-i2="rate:1">A</span> <span data-i2="rate:4">B</span> <span data-i2="rate:7">C</span> <span data-i2="rate:12">G</span> <span data-i2="rate:5">H</span> </div>

Entonces

i2.emph();

http://jsfiddle.net/EUaC5/1/