سؤال

لقد استخدمت Dojo Charting لإنشاء مخطط أعمدة. أنا معجب جدا به الأمر حتى الآن، لكنني قررت أنني بحاجة إلى محور ص لوجاريتمي. لا تبدو وكأنها مدعومة حتى الآن، رغم أنني رأيت مدونة المدونة مما يعني أنه تم التخطيط له في مرحلة ما.

هل يعرف أحد أنه ممكن في الوقت الحالي؟ إذا لم يكن الأمر كذلك، فأنا سعيدا لمحاولة كتابة التحسين بنفسي، لذلك إذا كان أي شخص لديه بعض النصائح حول المكان الذي يجب البدء فيه، فسيتم استلامهم بامتنانهم. أظن أنه من حالة تنفيذ نوع مقياس جديد، على الرغم من أنني لم أمضي الكثير من الوقت في الحفر من خلال المصدر حتى الآن.

شكرا، مارتن.

هل كانت مفيدة؟

المحلول

لا يزال Dojox.gfx ليس لديه محور اللوغاريتمي حتى الآن.

تحديث: طريقة واحدة للقيام بذلك هي إعادة صياغة البيانات على طول محور اللوغاريتمي، واستخدام المحور الخطي مع التسميات المخصصة. علي سبيل المثال:

// we will transform our 'x' to a decadic logarithmic scale

var LOG10 = Math.log(10);

var data = [...]; // my data of {x, y}
var transformedData = dojo.map(data, function(value){
  return {
    x: Math.log(value.x) / LOG10,
    y: value.y // 'y' is unchanged
  };
});

// ...

// add the axis and the data
chart.addAxis("x", {
  natural: true,
  includeZero: true,
  // our logarithmic labels
  labels: [
    {value: 0, text: "1"},
    {value: 1, text: "10"},
    {value: 2, text: "100"},
    {value: 3, text: "1000"},
    {value: 4, text: "10^4"},
    {value: 5, text: "10^5"},
    {value: 6, text: "10^6"},
    {value: 7, text: "10^7"},
    {value: 8, text: "10^8"},
    {value: 9, text: "10^9"}
  ]
});
chart.addSeries("my data", transformedData);

// ...

شيء من هذا القبيل سوف تفعل الخدعة. الخيار الآخر هو استخدام وظيفة وضع العلامات لإنشاء ملصقات "لوغاريتمي" تلقائيا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top