Вопрос

Я использовал диаграмму Dojo для создания диаграммы столбцов.Пока что я очень впечатлен этим, но решил, что мне нужна логарифмическая ось y.Не похоже, что это поддерживается до сих пор, хотя я видел запись в блоге подразумевая, что это было запланировано в какой-то момент.

Кто-нибудь знает, возможно ли это на данный момент?Если нет, то я с удовольствием попробую написать улучшение сам, так что, если у кого-нибудь есть несколько советов о том, с чего начать, я буду с благодарностью принят.Я подозреваю, что это связано с внедрением нового типа шкалы, хотя я еще не потратил много времени на изучение исходного кода.

Спасибо, Мартин.

Это было полезно?

Решение

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