NVD3.js多图形,具有固定的x轴和y轴
NVD3.js multichart with fixed x- and y-axis
我正在使用NVD3.js多图表来显示各种数据。是否可以设置x轴和y轴的固定范围。我举了一个Plunker的例子:http://plnkr.co/edit/OLN87eIE21tImHktYIH6?p=preview
var chart = nv.models.multiChart()
.margin({top: 30, right: 60, bottom: 50, left: 70})
.color(d3.scale.category10().range());
chart.xAxis.tickFormat(function(d) {
return d3.time.format('%H:%m')(new Date(d));
});
chart.yAxis1.tickFormat(d3.format(',.1f'));
chart.yAxis2.tickFormat(d3.format(',.1f'));
d3.select('#diagramChart svg')
.datum(bpmData)
.transition().duration(500).call(chart);
我想将x轴设置为00:00到23:59,并在取消选择一个数据时停止调整大小。与y轴相同,但与其他值相同。有办法做到这一点吗?谢谢
您在plnkr上引用的是nvd3的旧版本。有一个文档和一个新的1.7.x版本-许多图表都使用共享库,因为特别是multiChart有缺陷。你搜索得不好,已经有一些问题了。
所以你的问题试试
chart
.yDomain1([0,200])
.yDomain2([0,10]);
我无法在xAxis上获得这样的s.th。但我读到,如果它在折线图、条形图或堆叠面积图上工作,并不是所有的都在多图表中工作,所以这可能是问题所在。
帖子:
nvd3-多条形图-x-轴域
y-轴-nvd3-d3 的可变角度
如何操作特定域-x-轴-in-nvd3线图
更新:这是我在multiChart上运行的代码的一部分,该代码在nvd3 1.7中运行(但由于我从1.1更新了它,可能会有一些不推荐使用的符号):
nv.addGraph(function() {
var chart = nv.models.multiChart()
.yDomain1([-20, 80])
.yDomain2([-50, 200]) //important! works only with manual tickValues definiton (see chart1.yAxis2.tickValues([...]) !)
.margin({top: 30, right: 75, bottom: 40, left: 70}) //important for display of lable on y2Axis!
;
//chart option settings
var options = {
showControls: false,
showLegend: true
}
chart1.options(options);
d3.json(filepath, function(error, json) {
if (error) {
return console.warn(error);
}
var _inputdata = json.map(function(series) {
series.values = series.values.map(function(d) {
return { x: d[0], y: d[1] }
});
series.key = series.key.map(function(d) {
return d[lang]
});
return series;
});
chart1.xAxis
.axisLabel("Date")
.tickFormat(function(d) { return (d3.time.format('%d.%m. %H:%M')(new Date(d))) })
;
chart1.yAxis1
.axisLabel('leftAxis')
.axisLabelDistance(10)
.tickFormat(d3.format('.2f'))
;
chart1.yAxis2
.axisLabel('rightAxis')
.tickFormat(d3.format('.2f'))
//(problem is, nvd3 does always tickValues of 20 and then jumps to tickVlaues of 50).
//not possible to set fixed steps of ticks like "y2ticks(10), workaround (-50 til 200):"
.tickValues([-50,-25,0,25,50,75,100,125,150,175,200])
;
d3.select('#chart_1').append("svg")
.attr("id", "chart1")
.attr("height", 500)
.datum(_inputdata)
.transition()
.duration(300)
.call(chart1)
;
nv.utils.windowResize(function() {
chart1.update();
});
//update chart to correct alignments of objects (e.g. wrapping o. elements)
chart1.update();
});
});
相关文章:
- 如何使用PHP和JS级联三个下拉列表
- Jpgraph:如何手动设置X轴和Y轴的范围
- 谷歌地图Api和JS代码不工作
- 浏览器坚持使用旧的html和JS缓存
- PHP和JS脚本的奇怪问题,在我刷新页面之前第一次失败
- Dart和第三方CSS和JS框架
- Bootstrap CSS和JS我必须将它们包含在单独的文件中,或者可以编译它们
- PHP和JS中表单验证的最佳方式
- 使用SVG和JS进行转换
- NVD3.js多图形,具有固定的x轴和y轴
- 制作一个chrome扩展,替换css和js元素
- 单独的文件(HTML5、CSS和JS)
- 使用HTML和JS的iPhone游戏中的性能问题,以及appMobi
- 如何在放大和缩小时间轴时在时间轴Vis.js上设置新选项
- d3.js如何区分 X 轴和 Y 轴
- 图表JS自定义工具提示,X轴和Y轴的%和标签
- 如何在js中使用一个对象创建多个矩形?如何在不同的x轴和y轴上做出它们
- 使用数组计算坐标之间的距离,并设置Y轴和比例- D3.js
- Three.js -当相机以90度角旋转时,为什么在x轴和z轴上旋转会产生相同的效果?
- 我如何通过x轴和y轴移动一个点,而曲线在chart.js线形图中没有改变