Angular NVD3 Y轴设置最小数据值作为最大范围值

Angular NVD3 Y-Axis sets minimum data value as max range value

我正在将已解析的 xml 数据推送到 nvd3 图表的值和标签。出于某种原因,我的一个离散条形图,即下拉菜单中 "Top 5 SIC by Comments" 下的那个,没有按其应有的方式工作。 y 轴范围设置为所有点的最小 y 值,因此它使所有条形的大小相同。我已经从我制作的其他图表中复制了设置,所以我不确定出了什么问题(我不认为这可能是错字,我的其他离散条形图正在工作)。我已尝试更改 xml 文件 sample4.xml 中的值,但大小仍然保持不变。条形图或更确切地说是 y 轴恢复为正确格式的唯一方法是当我手动将控制器本身的数值更改为“900”时,但我不能这样做,因为我需要这些值从 xml 文件中推送。我缺少的配置有问题吗?或者有什么方法可以强制y轴将最大范围值设置为数据集中的最大值?

这是我的plnkr

我尝试过在线研究,但我没有在论坛中发现任何此错误的实例。任何帮助将不胜感激。

请尝试使用 angular-nvd3 库提供的 api 对象调用它的 updateWithData(data) 方法,每次更新数据。 (如果你也更新选项,你会调用 updateWithOptions (updatedOptions)。

在您的 .html 中分配一个 api 对象。 (确保你事先没有在控制器的范围内创建对象名称 barApi,这是我犯的错误。):-

<nvd3 options="optionsBar" data="barData" api="barApi"></nvd3>

在您的下拉更改事件中,您可以这样调用:-

$scope.barApi.updateWithData(data)

其中数据是您的数据对象。 另请参阅 [krispo 于 2014 年 9 月 16 日发表评论] 在以下主题中的评论。 https://github.com/krispo/angular-nvd3/issues/37