【问题标题】:On scaling tags in a tag cloud在标签云中缩放标签
【发布时间】:2009-08-25 11:14:37
【问题描述】:

我正在移动设备上实现标签云。数据模型等的细节在这里并不是特别重要。我的问题是关于标签的缩放:

将标签频率映射到字体大小的“最佳”表达式是什么?

我看过 this post 讨论线性和对数缩放,以及来自 Adrian Kuhn 的多项式方法草图的 this answer 以获得灵感。不过,我似乎记得在互联网上的某个地方有一篇文章,对这个问题进行了更多探索。

我还在博客上找到了一些“best practices”,但我不确定最佳实践的意义。这些对频率缩放没有评论。

标签缩放有哪些替代方法,哪种是首选/标准方法?我也在考虑最小字体大小、最大标签数量、颜色等。

编辑:根据this question 中的讨论,我对具有字体大小变化的“标准”标签云感兴趣。

【问题讨论】:

  • 呃,看看这个网站的右边栏 - 按实例数降序排列,数字在右边。为我工作。

标签: language-agnostic user-interface rendering tagging tag-cloud


【解决方案1】:

我去年参与了一个小型标签云项目,其中我使用了类似以下内容的东西

β = (int) (((maxθ – minθ) x ω) + minθ + 0.5)
其中 ω 是先前根据某些度量(在您的情况下是字体频率)计算的权重,minθ 和 maxθ 是下限和上限,β 是最终值。这可以应用于任何视觉特征(字体大小、颜色、重量(如果支持)等)。

我发现线性和对数缩放往往依赖于数据集分布。在具有显着异常值的数据集中,我发现 tanh 对于“平滑”结果值很有用。

【讨论】:

  • 这是我最终采用的线性缩放。好主意回复:tanh,我会进一步研究。
【解决方案2】:

this pdf 中有一个很好的讨论,讨论了对要显示的标签的缩放、聚类和截断。

【讨论】:

    【解决方案3】:

    我发现一个很好的解决方案如下

    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 个四分位数的大小差异,以最大限度地减少高异常值的影响

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2017-05-19
      • 2019-06-20
      相关资源
      最近更新 更多