我一直在使用 Dojo 图表来创建柱形图。到目前为止,我对它印象深刻,但我决定我需要一个对数 y 轴。到目前为止似乎不支持此功能,尽管我看到一个博客条目暗示它是在某个时候计划的。
有谁知道目前有可能吗?如果没有,那么我很高兴自己尝试编写增强功能,所以如果有人有一些关于从哪里开始的提示,他们将不胜感激。我怀疑这是实现一种新的 Scale 类型的情况,尽管我还没有花太多时间挖掘源代码。
谢谢,马丁。
我一直在使用 Dojo 图表来创建柱形图。到目前为止,我对它印象深刻,但我决定我需要一个对数 y 轴。到目前为止似乎不支持此功能,尽管我看到一个博客条目暗示它是在某个时候计划的。
有谁知道目前有可能吗?如果没有,那么我很高兴自己尝试编写增强功能,所以如果有人有一些关于从哪里开始的提示,他们将不胜感激。我怀疑这是实现一种新的 Scale 类型的情况,尽管我还没有花太多时间挖掘源代码。
谢谢,马丁。
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);
// ...
像这样的东西可以解决问题。另一种选择是使用标签功能自动生成“对数”标签。