C3: مؤامرة لوغاريتمية

تم إنشاؤها على ٢٠ مايو ٢٠١٤  ·  16تعليقات  ·  مصدر: c3js/c3

أهلا بالجميع،
لقد بحثت قليلاً هنا وفي صفحة الأمثلة ، لكن لم أجد أي شيء حول محاور اللوغاريتم. هل من الممكن إنشاؤها؟ إذا لم يكن الأمر كذلك ، فاعتبر هذا بمثابة طلب ميزة.
مع أطيب التحيات،
ياكوف.

C-feature-request C-new-chart

التعليق الأكثر فائدة

هذا اختراق قبيح جدًا. هل سيكون من الممكن كشف واجهة برمجة تطبيقات تسمح بتوصيل أي مقياس d3؟

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

haipbustosl ،، إنه يعمل بالنسبة لي! thx ... ولكن عندما يكون لدي قيمة 0 في data1 ، فإنه لا يعمل ، كيف يمكنني التعامل مع القيمة 0؟ شكرا

يؤدي ما يلي أيضًا إلى تنسيق القيم:

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؟

+1 ... أحتاج إلى رسم مخطط بمقياس لوغاريتمي.

أرغب أيضًا في القدرة على ضبط المحور (المحاور) y على السجل

أود أيضًا أن أتمكن من استخدام مقياس لوغاريتمي للمحور y.

أي أخبار عن هذا؟

حاولت معالجة هذه المشكلة (# 2100). هذا ليس مثاليًا بنسبة 100٪ ولكنه قد يكون كافيًا للعديد من الحالات.

لقد جربت حل pbustosl ... لقد كان مفيدًا.

ولكن عندما تكون قيمة البيانات 1 ، فإن المحور y يبدأ من 1. أيضا عندما كانت قيمة البيانات 0 لم يتم عرض الرسم البياني.

لقد قمت ببعض الحلول لذلك.
يرجى الرجوع إلى هذا JSFiddle https://jsfiddle.net/86chryat/

يدعم d3.js بشكل مباشر مقياس اللوغاريتمات على المحور ، لذلك سيكون من الرائع حقًا أن يظهر ذلك في c3. إنه حل أفضل بكثير من إعادة حساب البيانات ، لأنه يتعامل أيضًا مع العلامات.

أوافق على أن مقياس اللوغاريتمات سيكون مفيدًا

@ masayuki0812 - بإغلاق هذا ، هل يعني أنك لن تفكر في دعم ذلك؟ إنها حقًا ميزة مهمة لبعض التطبيقات. سيكون من الرائع أن يكون لديك تكامل مناسب إذا كان لديك الوقت / الرغبة من فضلك.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات