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])

マサユキの回避策の実装:

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 評価