C3: 对数图

创建于 2014-05-20  ·  16评论  ·  资料来源: c3js/c3

大家好,
我在这里和示例页面上进行了一些搜索,但没有找到有关对数刻度轴的任何信息。 是否可以创建它们? 如果没有,请将其视为功能请求。
最好的祝福,
雅科夫。

C-feature-request C-new-chart

最有用的评论

这是一个非常丑陋的黑客。 是否可以公开一个允许插入任何 d3 比例的 API?

所有16条评论

您好,抱歉目前没有。 现在您需要自己生成对数缩放的数据并绘图。
稍后我会考虑作为一个新功能。

你好,正幸,

您需要生成对数缩放的数据

你的意思是现在可以模拟这个功能吗? 我已经查看了#Axis 示例,但没有注意到将刻度放在任意位置的方法.. 我应该查看什么示例?
最好的问候和感谢您的时间和工作,
雅科夫。

当您准备数据时,将其转换为对数刻度。 在 Python 中,假设您有一个这样的列表

[100,1000,10000]

你只要这样做

import math
log_list = map(math.log10,[100,1000,10000])

Masayuki 的解决方法的实现:

data_test_original = ['data1', 10, 100, 1000, 3, 500, 50, 5, 3000]
data_test = ['data1'];
for(var i=1; i<data_test_original.length; i++){
    data_test[i] = Math.log(data_test_original[i]) / Math.LN10;
}

var chart_test = c3.generate({
    bindto: '#chart_test',
    size: {
        height: 240,
        width: 480
    },
    data: {
      columns: [
        data_test
      ]
    },
    axis : {
        y : {
            tick: {
               format: function (d) { return Math.pow(10,d).toFixed(2); }
            }
        }
    },
});

hai @pbustosl ,它对我

以下内容也将格式化值:

data_test_original = ['data1', 10, 100, 1000, 3, 500, 50, 5, 3000]
data_test = ['data1'];
for(var i=1; i<data_test_original.length; i++){
    data_test[i] = Math.log(data_test_original[i]) / Math.LN10;
}

var chart_test = c3.generate({
    size: {
        height: 240,
        width: 480
    },
    data: {
        type:"bar",
      columns: [
        data_test
      ],
      labels : {show:true,
          format: {
              data1 : function(d,id){console.log(id, Math.pow(10,d));return Math.pow(10,d).toFixed(0);}
          }
      }
    },
    axis : {
        y : {
            show:false,
            tick: {
               format: function (d) { return Math.pow(10,d).toFixed(0); }
            }
        }
    },
});

这是一个非常丑陋的黑客。 是否可以公开一个允许插入任何 d3 比例的 API?

+1 ...我需要以对数比例绘制图表。

我还希望能够通过日志将我的 y 轴设置为

我也希望能够对 y 轴使用对数刻度。

有这方面的消息吗?

试图解决这个问题(#2100)。 这不是 100% 完美的,但对于很多情况来说可能已经足够了。

我尝试了@pbustosl解决方法......它很有帮助。

但是当数据值为 1 时,y 轴从 1 开始。 当数据值为 0 时,图表也不会呈现。

我为此做了一些解决方法。
请参考这个JSFiddle https://jsfiddle.net/86chryat/

d3.js 直接支持轴上的对数刻度,所以如果它可以在 c3 中浮出水面会非常好。 这是一个比重新计算数据更好的解决方案,因为它也处理刻度。

我同意对数刻度会很有用

@masayuki0812 - 关闭这个,是否意味着你不会考虑支持它? 对于某些应用程序来说,这确实是一个关键功能。 如果您有时间/倾向,进行适当的整合会很棒。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

DieterSpringer picture DieterSpringer  ·  4评论

mwho picture mwho  ·  3评论

seubert picture seubert  ·  3评论

zachallia picture zachallia  ·  3评论

Saikat-Sinha picture Saikat-Sinha  ·  3评论