【问题标题】:Kendo chart remove attribute using javascript剑道图表使用javascript删除属性
【发布时间】:2013-07-01 12:20:01
【问题描述】:

我有一个剑道柱形图,当通过日期选择器设置不同的标准时,数据源会刷新。

我想阻止图表将值轴显示为小数,到目前为止我发现的唯一方法是设置格式,这会导致数字重复,或者设置主要单位,如果我的数据发生变化,那么这会导致值轴标签重叠。都不合适。

我现在能想到的唯一方法是根据我的最大值是否小于 10 动态设置主要单位,如果是,则主要单位设置为 1,如果不是,则没有主要单位' t 设置。

这应该可以正常工作,但是如果主要单位设置为 1,并且数据发生更改,我现在需要找到一种方法来清除主要单位,如果我的新最大值大于 10。

在 javascript 中我有:

if (highest <= 10) {
   chart.data("kendoChart").options.valueAxis.majorUnit = 1;
} else {
   chart.data("kendoChart").options.valueAxis.majorUnit.remove(); // This does not work
}

我不能只将 majorUnit 设置为 null 或 0,它不喜欢这样,并且没有关于删除此类属性的正确语法的文档。

【问题讨论】:

    标签: javascript charts kendo-ui


    【解决方案1】:

    这对我有用:

    chart.data("kendoChart").options.valueAxis.majorUnit = undefined;
    

    别忘了打电话

    chart.data("kendoChart").refresh();
    

    【讨论】:

      【解决方案2】:

      你有例子要展示吗? 如果你只是隐藏价值轴线,它对你有帮助吗?

      http://docs.kendoui.com/api/dataviz/chart#configuration-categoryAxis.line.visible

      chart.data('kendoChart').options.valueAxis.line.visible = false;
      

      【讨论】:

      • 不幸的是我不能只隐藏比例,我仍然希望能够看到它,我只想删除 MajorUnit 属性。我认为您可以像删除 html 元素上的属性一样做到这一点,但如果可能的话,我不知道语法。
      • 如果可以的话,做一个jsFiddle例子,这样我们就可以详细看到实际问题。
      • 这就是我最终所做的,因为没有明显的方法可以删除主要单元。我创建了两个值轴,然后在我检查最高值的地方,我要么隐藏要么显示正确的值轴。你不能只删除主要单位,但没关系,这似乎很荒谬。
      【解决方案3】:

      如果您使用的是数据源,您可以将此代码放入 requestEnd 函数中,因此不需要刷新图表:

      $("#chart").kendoChart({
          dataSource: {
              transport: {
                  read: {
                      url: url,
                      dataType: "json",
                      type: 'POST'
                  }
              },
              // This is to set a step that looks appropriate for the size of the graph
              requestEnd: function(e){
                  var max = 1;
      
                  // Iterate over your own data as you need, here my data returns "Category" and "Count" in each row.
                  e.response.forEach(function(row){
                      if(row.Count > max)
                          max = row.Count;
                  });
      
                  if(max <= 10)
                      $("#chart").data('kendoChart').options.valueAxis.majorUnit = 2;
                  else
                      $("#chart").data('kendoChart').options.valueAxis.majorUnit = undefined;
              },
          },
      

      【讨论】:

        猜你喜欢
        • 2018-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-02
        • 1970-01-01
        • 1970-01-01
        • 2018-12-14
        相关资源
        最近更新 更多