我正在使用JQuery Flot与堆叠插件一起创建一个堆积的条形图,其中包含来自多个不同来源的收入。我遇到的问题是,有一个时间点,一个来源的收入比整个图表中的任何一个都大几个数量级。
最终结果是该值在图表中占主导地位,将所有其他柱子缩小到不可用的高度。我可以在图表上设置最大高度,但是你无法看到未完成的值。
在数据可视化方面是否有最佳实践来解决这种情况?一些flot选项/插件可以帮忙吗?还是一个能以比flot更好的方式处理这种情况的图书馆?
答案 0 :(得分:2)
我不确定金融情节,但在科学绘图中,为了强调接近0的数据,经常使用对数缩放轴。与线性缩放轴不同,其中每个等间距刻度表示+N
,在对数刻度轴中,每个等间距刻度表示数量级增加。最简单的情况是轴变为0.1, 1, 10, 100, 1000, etc...
例如,这里是带有线性和对数缩放轴的相同条形图:
这是我用来生成此代码的flot代码(小提琴here):
$(function() {
var series = {data: [[0, 0.1], [1, 1], [2, 10], [3, 100000]],
lines: {show: false},
bars: {show: true}}
$.plot("#linear", [ series ]);
$.plot("#log", [ series ], {
yaxis: {
min: 0.1,
max: 150000,
ticks: [[0.1,"0.1"], 1, 10, 100, 1000, 10000],
transform: function (v) {
return (v == 0) ? Math.log(0.0001) : Math.log(v);
},
inverseTransform: function (v) {
return Math.exp(v);
}
}
});
});