条形图中条形的NVD3力特定宽度
NVD3 force specific width of bar in bar chart
我正在尝试在nvd3离散条形图上设置一个特定的宽度值。我可以在初始渲染后更改rect元素,但似乎有一些方法可以在图表的设置中指定条形宽度。
这是我当前的图表设置。
nv.addGraph ->
chart = nv.models.discreteBarChart()
.x (d) ->
return d.label
.y (d) ->
return d.value
.staggerLabels(false).showValues(false)
.color(['#56bd78']).tooltips(false)
.margin({top: 0, right: 0, bottom: 30, left: 0})
chart.tooltipContent (key, x, y, e, graph) ->
return '<h3><span>' + parseFloat(y) + '</span><em>' +
key + '</em></h3>'
chart.xAxis.tickFormat (d) ->
return d3.time.format('%b')(new Date('2013/'+d+'/01'))
# chart.xAxis.tickPadding({top: 0, bottom: 0, left: 20, right:30})
d3.select(element).datum(data).transition().duration(500).call(chart)
nv.utils.windowResize(chart.update)
return chart
我想,由于我找不到任何关于这个特定问题的问题,可能很简单,我错过了。提前谢谢。
尝试chart.groupSpacing(0.5)
并相应地更改值,看看它是否解决了问题。
解决这个问题的一个好方法是使用CSS:
.nv-bars rect {
width: 20px;
}
这就是我们在应用程序中所做的,而且效果很好。
在Nvd3中,条形图中单个条形的宽度取决于图表中数据项的数量
好吧,首先,groupSpacing
在nvd3的多条形图中工作,而不是在离散条形图中。然而,它不会解决你的这个问题。
其他修复,如更改条形图(rect)的css属性并将宽度设置为修复值或使用dispatch事件,肯定会减少条形图的宽度,但会扰乱布局,并且您必须手动进行计算,根据条形图宽度的更改设置数据标签和其他值。
.nv-groups .nv-group rect{
width: 50px;
}
或
chart.dispatch.on("renderEnd", (d) => {
d3.selectAll("rect.discreteBar").attr('width', 50);
d3.selectAll("g.nv-bar text").attr('x', 30);
d3.selectAll(".nv-discretebar").attr('transform', 'translate(100,0)');
}
);
无论如何,我不想修补库或添加手动计算,因为我有没有固定特定数据长度的动态数据。
在处理这个问题时,对我有效的是将库从nvd3更改为apexcharts(http://apexcharts.com/)
转换只需要一点时间来更改apexcharts所需的数据格式,但apexchart确实有很多功能,只需在bar
的plotOptions
中设置columnWidth
属性就可以轻松解决您的问题。
为了回答我自己的问题,我不得不使用jQuery"手动"更改值,以使图表按我希望的方式显示。
$(element+' rect.discreteBar').attr('transform', 'translate(17)').attr('width', 20)
$(element+' .nv-axis g text').attr('transform', 'translate(0, 5)')
正如Lars所指出的,库根据项目的数量动态计算宽度,这是有道理的。
相关文章:
- 用chart.js绘制条形图
- d3.js用按钮更新条形图工具提示
- 添加新数据时D3.JS条形图列偏移量
- Angular-nvD3条形图y轴缩放错误(AngularJS)
- 如何在nvd3中对条形图进行排序
- 如何将参考线添加到 nvd3 离散条形图
- 将CSV加载到NVD3中以制作离散条形图
- NVD3.js 多条形图工具提示颜色
- 将 nvd3 线加条形图调整为带有累积百分比线的直方图
- nvd3多条形图状态在图例切换时更新错误
- 将y轴标签添加到NVD3多条形图中
- 当序列计数变化时,使用NVD3维护堆叠/分组多条形图的颜色映射
- 条形图中条形的NVD3力特定宽度
- nvd3向多条形图添加工具提示
- nvd3离散条形图y轴标签
- 使用nvd3.js绘制具有堆叠条形图和折线图的图表
- 用d3.csv加载csv数据在nvd3多条形图示例(JSON格式)
- Angular NVD3多条形图,双y轴,只显示使用json数据的线
- 我如何添加一些文本到NVD3离散条形图的工具提示
- Nvd3调整线+条形图大小