User interface 将标记云装配到可用空间
考虑到单词及其频率和屏幕面积,有什么好的方法可以在空间中安装标签云?我能想到操纵的两个变量是:User interface 将标记云装配到可用空间,user-interface,tag-cloud,User Interface,Tag Cloud,考虑到单词及其频率和屏幕面积,有什么好的方法可以在空间中安装标签云?我能想到操纵的两个变量是: 字体大小(绝对和渐变) 字数 我能想到的所有方法都需要迭代,比如设置单词数量的上限,然后对字体大小进行二进制搜索,直到单词刚好适合该区域。我宁愿有一个解析解 我的情况的一个复杂之处是云是可调整大小的,因此算法需要能够合理地处理100x100像素或1000x1000像素 编辑:我应该说这是针对富客户机应用程序的,而不是web(因此有可能调整大小)。此外,我还希望听到一些经验,比如“没有人会在标记云中
- 字体大小(绝对和渐变)
- 字数
PS:只有使用以像素为单位的字体大小,才能可靠地执行此操作。在好的网页设计中,以像素为单位的字体大小是一件坏事(TM)。您可以创建一组预先确定的关联范围,然后可以将其与云中的字体大小关联起来。例如:
- 0-100:1 em
- 101-500:1.2 em
- 501-1000:1.4 em粗体
- 1001-1500:1.8 em粗体
- 1501-2000:2.0 em粗体斜体/带下划线/闪烁/任何其他
您可以根据容器的大小为所有范围添加一个固定的偏移量来缩放云
- 具有最大字体大小
- 将
映射到此范围(因为单词是2D区域)Math.sqrt(术语频率)
- 仅显示前30个(或更多)术语
- 不包括任何精细打印,即字体大小小于6磅
- 按字母顺序对云中的术语进行排序
- 选择顶部的
,使其没有滚动条,而不是显示前30名k
- 不要将最常用的单词映射到最大字体大小,而是使用全局映射,以便单词大小在云之间具有可比性(这取决于您的用例)
据我所知,目前还没有关于术语云的实证研究(也许Worlde fame的Jonathan Feinberg在这方面知道得更多)。有没有办法获得ems测量的容器大小?