C3: Plot logaritma

Dibuat pada 20 Mei 2014  ·  16Komentar  ·  Sumber: c3js/c3

Halo semuanya,
Saya telah mencari sedikit di sini dan di halaman contoh, tetapi belum menemukan apa pun tentang sumbu berskala logaritma. Apakah mungkin untuk membuat mereka? Jika tidak, anggap ini sebagai permintaan fitur.
Salam,
Yakov.

C-feature-request C-new-chart

Komentar yang paling membantu

itu hack yang cukup jelek. apakah mungkin untuk mengekspos API yang memungkinkan skala d3 apa pun dicolokkan?

Semua 16 komentar

Hai, Maaf saat ini tidak. Sekarang Anda perlu membuat data skala logaritma sendiri dan plot.
Saya akan mempertimbangkan sebagai fitur baru nanti.

Halo Masayuki,

Anda perlu membuat data berskala logaritma

maksud Anda fitur ini sekarang bisa ditiru? Saya telah melihat melalui contoh #Axis, tetapi belum menemukan cara untuk menempatkan tanda centang di posisi sewenang-wenang.. Contoh apa yang harus saya lihat?
Salam dan terima kasih atas waktu dan pekerjaan Anda,
Yakov.

Saat Anda menyiapkan data Anda, konversikan ke dalam skala log. Dengan Python katakanlah Anda memiliki daftar seperti ini

[100,1000,10000]

Anda hanya melakukan ini

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

Implementasi solusi 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 ,, ini bekerja untuk saya! thx...tapi ketika saya memiliki nilai 0 di data1, itu tidak bekerja, bagaimana saya bisa menangani nilai 0 ? Terima kasih

berikut ini juga akan memformat nilai:

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); }
            }
        }
    },
});

itu hack yang cukup jelek. apakah mungkin untuk mengekspos API yang memungkinkan skala d3 apa pun dicolokkan?

+1 ...Saya perlu menggambar bagan dalam skala log.

Saya juga ingin kemampuan untuk mengatur sumbu y saya dengan log

Saya juga ingin dapat menggunakan skala log untuk sumbu y.

Ada berita tentang ini?

Mencoba mengatasi masalah ini (#2100). Ini tidak 100% sempurna tetapi mungkin cukup untuk banyak kasus.

Saya mencoba solusi @pbustosl ... itu membantu.

tetapi ketika nilai datanya adalah 1, sumbu y dimulai dari 1 . juga ketika nilai data 0 grafik tidak dirender.

saya telah melakukan beberapa solusi untuk itu.
silakan lihat JSFiddle ini https://jsfiddle.net/86chryat/

d3.js secara langsung mendukung skala log pada sumbu, jadi akan sangat bagus jika itu bisa muncul di c3. Ini adalah solusi yang jauh lebih baik daripada menghitung ulang data, karena ini juga menangani kutu.

Saya setuju skala log akan berguna

@masayuki0812 - dengan menutup ini, apakah itu berarti Anda tidak akan mempertimbangkan dukungan untuk itu? Ini benar-benar fitur penting untuk aplikasi tertentu. Akan sangat bagus untuk memiliki integrasi yang tepat jika Anda punya waktu / keinginan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat