أهلا بالجميع،
لقد بحثت قليلاً هنا وفي صفحة الأمثلة ، لكن لم أجد أي شيء حول محاور اللوغاريتم. هل من الممكن إنشاؤها؟ إذا لم يكن الأمر كذلك ، فاعتبر هذا بمثابة طلب ميزة.
مع أطيب التحيات،
ياكوف.
مرحبا ، آسف حاليا لا. أنت الآن بحاجة إلى إنشاء البيانات المقاسة باللوغاريتم بنفسك والمؤامرة.
سأعتبرها ميزة جديدة لاحقًا.
مرحبا ماسايوكي ،
تحتاج إلى إنشاء بيانات لوغاريتمية
هل تقصد أنه من الممكن محاكاة هذه الميزة الآن؟ لقد بحثت في أمثلة #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 - بإغلاق هذا ، هل يعني أنك لن تفكر في دعم ذلك؟ إنها حقًا ميزة مهمة لبعض التطبيقات. سيكون من الرائع أن يكون لديك تكامل مناسب إذا كان لديك الوقت / الرغبة من فضلك.
التعليق الأكثر فائدة
هذا اختراق قبيح جدًا. هل سيكون من الممكن كشف واجهة برمجة تطبيقات تسمح بتوصيل أي مقياس d3؟