大家好,
我在这里和示例页面上进行了一些搜索,但没有找到有关对数刻度轴的任何信息。 是否可以创建它们? 如果没有,请将其视为功能请求。
最好的祝福,
雅科夫。
您好,抱歉目前没有。 现在您需要自己生成对数缩放的数据并绘图。
稍后我会考虑作为一个新功能。
你好,正幸,
您需要生成对数缩放的数据
你的意思是现在可以模拟这个功能吗? 我已经查看了#Axis 示例,但没有注意到将刻度放在任意位置的方法.. 我应该查看什么示例?
最好的问候和感谢您的时间和工作,
雅科夫。
当您准备数据时,将其转换为对数刻度。 在 Python 中,假设您有一个这样的列表
[100,1000,10000]
你只要这样做
import math
log_list = map(math.log10,[100,1000,10000])
Masayuki 的解决方法的实现:
data_test_original = ['data1', 10, 100, 1000, 3, 500, 50, 5, 3000]
data_test = ['data1'];
for(var i=1; i<data_test_original.length; i++){
data_test[i] = Math.log(data_test_original[i]) / Math.LN10;
}
var chart_test = c3.generate({
bindto: '#chart_test',
size: {
height: 240,
width: 480
},
data: {
columns: [
data_test
]
},
axis : {
y : {
tick: {
format: function (d) { return Math.pow(10,d).toFixed(2); }
}
}
},
});
hai @pbustosl ,它对我
以下内容也将格式化值:
data_test_original = ['data1', 10, 100, 1000, 3, 500, 50, 5, 3000]
data_test = ['data1'];
for(var i=1; i<data_test_original.length; i++){
data_test[i] = Math.log(data_test_original[i]) / Math.LN10;
}
var chart_test = c3.generate({
size: {
height: 240,
width: 480
},
data: {
type:"bar",
columns: [
data_test
],
labels : {show:true,
format: {
data1 : function(d,id){console.log(id, Math.pow(10,d));return Math.pow(10,d).toFixed(0);}
}
}
},
axis : {
y : {
show:false,
tick: {
format: function (d) { return Math.pow(10,d).toFixed(0); }
}
}
},
});
这是一个非常丑陋的黑客。 是否可以公开一个允许插入任何 d3 比例的 API?
+1 ...我需要以对数比例绘制图表。
我还希望能够通过日志将我的 y 轴设置为
我也希望能够对 y 轴使用对数刻度。
有这方面的消息吗?
试图解决这个问题(#2100)。 这不是 100% 完美的,但对于很多情况来说可能已经足够了。
我尝试了@pbustosl解决方法......它很有帮助。
但是当数据值为 1 时,y 轴从 1 开始。 当数据值为 0 时,图表也不会呈现。
我为此做了一些解决方法。
请参考这个JSFiddle https://jsfiddle.net/86chryat/
d3.js 直接支持轴上的对数刻度,所以如果它可以在 c3 中浮出水面会非常好。 这是一个比重新计算数据更好的解决方案,因为它也处理刻度。
我同意对数刻度会很有用
@masayuki0812 - 关闭这个,是否意味着你不会考虑支持它? 对于某些应用程序来说,这确实是一个关键功能。 如果您有时间/倾向,进行适当的整合会很棒。
最有用的评论
这是一个非常丑陋的黑客。 是否可以公开一个允许插入任何 d3 比例的 API?