动态更改刻度值,c3js
Dynamically change tick values, c3js
我在c3js中有一个条形图,它使用x轴上的类别记号。我想显示的刻度值是在加载图表时设置的:
axis: {
x: {
tick:{
rotate: -35,
values: getTicks(displayData), //Return the tick values
multiline:false
},
type: 'categorized'
}
}
在加载时手动设置记号的原因是我需要稍后更新它们。
我需要允许用户在不加载新数据的情况下动态更新x轴范围,并且我希望显示的刻度数保持不变,但明显具有不同的值。
要更改x轴范围,我使用以下功能:
chart.axis.range({min: {x: minRange}, max: {x: maxRange}});
没有名为chart.axis.values
的函数。关于如何动态更改刻度值,有什么想法吗?
编辑-为了明确起见,我不想更新图表的值。这包括x轴和y轴的值。我只想更改显示的记号。
这样的东西应该可以工作。
axis: {
x: {
type: 'timeseries',
tick: {
values: function(x) { return customTicks(x) },
format: function(x) { return customFormat(x); },
}
}
}
customTicks()
必须返回一个日期数组才能正常工作。
function customTicks(x) {
start = x[0];
end = x[1];
result = [];
for (var i = new Date(start); i <= end; i.setDate(i.getDate() + 1)) {
result.push(new Date(i));
}
return result;
}
customFormat()
获取日期并返回该日期的字符串。这使您可以根据需要灵活地自定义格式。
function customFormat(x) {
}
它可能不是特别优雅,但能起到作用。这种方法的一个好处是,您可以在多个图表上使用相同的函数,并且它们总是表现出相同的行为。
此方法的问题#1是,它似乎对每个数据点调用customTicks()
,就像对customFormat()
调用一样。
问题#2是它会产生很多这样的错误:
d3.v3.min.js:1[违规]为滚动阻止的"touchstart"事件添加了非被动事件侦听器。请考虑将事件处理程序标记为"被动",以提高页面的响应能力。看见https://www.chromestatus.com/feature/5745543795965952
这已经在的Stackoverflow上标记了。将非被动事件侦听器添加到滚动阻止';触摸启动';事件
我在动态更新Y轴刻度值时遇到了同样的困难。我搜索了c3.js文档,期望得到类似于chart.axis.range
或chart.axis.max
/chart.axis.min
的chart.axis.values
。
在控制台上挖掘Chart对象之后。我设法解决了我的问题,但方法有点古怪。
请检查小提琴,我玩过chart.internal
,它包含绘制图表的图表值。我更改了这些值,并使用chart.flush()
方法重新绘制图表。
根据https://github.com/c3js/c3/issues/827:
chart.internal.config.axis_x_tick_values = getTicks(displayData);
这对我有用。
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 动态分配GA增强型电子商务跟踪器
- onkeyup无法动态创建多个文本区域
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何使Javascript动态html表及其上的事件
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 如何使用javascript从主svg对象动态创建svg视图框
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- 如何在Google柱状图中动态添加行/列
- 困在逻辑中试图定位动态的东西
- 在动态创建的元素上获取对特定选择器的引用
- 如何动态插入jquery代码
- 使用Google Visualization动态调用构造函数
- 使用jQuery动态添加表并在其中动态添加行
- 如何在c3js动态图表上进行平滑(水平)转换
- 动态时间序列C3js图表
- 动态更改刻度值,c3js