كيف تجعل المحور علامة ليكون عدد صحيح فقط؟
ما حاولت استخدامه هو استخدام خيار التجزئة:
tick: {
format: function(x) {
return (x == Math.floor(x)) ? x : "";
}
}
هذا يمكن أن يجعل التسمية تظهر فقط عددًا صحيحًا ، لكن الخط الفاصل على المحور لا يزال موجودًا.
هل هناك طريقة للتحكم في علامة المحور؟
في إصدار التطوير الحالي (الرئيسي) ، يمكنك استخدام قيم المحور ص لتعيين قائمة
{
axis: {
y: {
ticks: [1,2,3]
}
}
}
لكن هذا لا يمكن أن يكون ديناميكيًا بناءً على مصدر البيانات ، هل أنا على حق؟
يمكنك حساب هذه القيم بعد تحميل البيانات ، وتعيينها على chart.internal.config.axis_y_tick_values
ثم استدعاء chart.flush()
لتطبيق قيم المحور الجديدة.
ماذا عن هذا الرمز؟
axis: {
y: {
tick: {
format: function (x) {
if (x != Math.floor(x)) {
var tick = d3.selectAll('.c3-axis-y g.tick').filter(function () {
var text = d3.select(this).select('text').text();
return +text === x;
}).style('opacity', 0);
return '';
}
return x;
}
}
}
}
يبدو أنه تم حلها بالفعل ، لذا من فضلك دعني أختم.
FWIW ، تتطلب معرفة الأجزاء الداخلية لـ D3 وتشغيل JS يبدو غريبًا حقًا. أرى هذا النمط كثيرًا في مشكلات C3 هذه: شخص ما لديه مشكلة ، وبدلاً من تقديم خيار C3 ، فإن 5-30 سطراً من جافا سكريبت التي يتم التعامل مع SVG الأساسي بها مع d3 هو الحل المقبول. أعتقد على المدى الطويل أن هذا سيكون ضارًا كبيرًا لاعتماد C3.
بالنسبة لهذه المشكلة على وجه الخصوص ، سيكون خيار "axis.y.tick.integer_only" ذا قيمة مذهلة. أرغب في تقديم امتداد لـ C3 لهذا الغرض. أرى امتداد المثال هنا . هل يوجد دليل إرشادي في مكان ما يمكن أن يرشدني؟
شكر!
تحرير: القواعد.
يمكنك حساب هذه القيم بعد تحميل البيانات ، وتعيينها على chart.internal.config.axis_y_tick_values ثم استدعاء chart.flush () لتطبيق قيم المحور الجديدة.
بالإشارة إلى هذا ، لأنني واجهت هذه المشكلة أيضًا اليوم - سيؤدي إجراء flush()
إلى إفساد حركة تغيير البيانات ، كما أن إضافة التأخير به بعض الثغرات الرسومية. ومع ذلك ، فإن تعيين chart.internal.config.axis_y_tick_values
إلى القيمة المناسبة قبل استدعاء load()
يعمل بشكل مثالي. ربما يكون هذا مفيدًا لشخص ما :).
نسخة أفضل:
axis: {
y: {
tick: {
format: function(x) { return x % 1 === 0 ? x : ''; }
}
}
}
شكرا لك نابينه - عملت علاج.
التعليق الأكثر فائدة
نسخة أفضل: