当前位置: 首页 > 知识库问答 >
问题:

d3中只有一个数量级的对数条形图

东方玉泽
2023-03-14

我正在创建一个在数量上有极大差异的条形图,我有一个按钮,可以从线性比例切换到对数比例。

应该使用什么基数/域/范围,以便每个刻度不会聚集成特定的数量级。我想要一个很好的平滑渐变,因为它压缩了上层值。

现在我的数据是domain([13900000]),范围是图形的高度。我可以伪造它,并将[1,10]用于base(10)域,但是刻度与数量不匹配。

var log = d3.scale.log()
    .domain([1, 39000000])
    .range([500, 0])
    .base(10);

使用更高的.base(10)值确实会减慢图形速度。其他人如何处理这些类型的图表?我的想法与雅虎在图表中的对数比例类似,都有一个平滑的数量级。

我以JSFIDLE为例。

共有1个答案

萧和同
2023-03-14

事实证明,我只需要使用一个功率秤,这就是它们的设计目的。

var log = d3.scale.pow()
    .domain([1, 39000000])
    .range([500, 0])
    .exponent(.2);

如果有用的话,这里有一个非常好的计算指数的网站。http://edenhalperin.com/d3-scale-generator/

 类似资料:
  • 我有一个从列表转换的数组,当我试图得到它的形状时,我只得到一个数字。这样地: 而我得到了 然后我试着 我明白了 好像a1的工作原理和a2一样。我能那样想吗?如果我把a1当成a2,除了形状法,会不会有问题?

  • 我试图理解他们条形图上的ChartJS文档。这对我来说没有意义,因为顶部的标签在一次意义上看起来似乎只适用于第一个栏(基于颜色),在另一种意义上,它适用于整个图表(它是唯一一个不在工具提示中的标签,它位于前面和中间) 我一直在努力使它更像他们的折线图,它显示了一个带有标签的图例和一个与图表上每条线相关的彩色正方形。(他们没有多行图表的示例,但它确实是这样工作的)。 我希望在顶部有一个图例,表示浅绿

  • 我是 Tableau 的新手,但需要相当简单的可视化。 假设我有一个包含3列{Val_A,Err_Model_AB (in %),Err_Model_AC (in %)}和100行的表。 参数Val_A从[0,1]获取随机值,Err_Model从[-10:10]获取。 现在我想要一个并排的条形图: x 轴:间隔为 0.1 的 Val_A的“箱”(因此为 0-0.1,0.1-0.2 .. 0.9-1

  • 问题内容: 我有一些这样的数据: 我想创建一个水平分组的条形图,以便有3组条形,首先是所有value1条(标记为Value1),然后是所有value2条,最后是所有value3条。 我该怎么做-请记住,数据将来会动态更新,因此将添加新的数据对象,而其他数据对象将被删除。猜猜我可以使用id作为密钥。 问题答案: 首先,将数据提供或转换为一个或多个普通数组 现在,您可以使用d3.transpose来旋

  • 我很难创建一个条形图,其中包含两个不同的y轴和每个x值(类别)的两个条形图。我有不同类型的数据类别(见下文),每个类别我都有两个值,我想并排绘制(和)。但是,每个类别的值相距甚远,这使得类别的条形几乎不可见。因此,我想添加第二个y轴(一个用于,一个用于),以允许在两个类别之间进行比较。 示例数据: 我使用下面的R代码(ggplot2)来创建绘图: 和,但我没有设法将y轴分配给数据类型。 我很高兴每

  • 问题内容: 我想循环更改条形图数据,但我不知道该怎么做。我的代码: 问题答案: 更新 模型 ,随后将显示侦听 视图 。动画更新,而不会阻塞事件调度线程,使用; 根据需要调用。 经测试: