【问题标题】:Highmaps min/max color not working as expectedHighmaps 最小/最大颜色未按预期工作
【发布时间】:2015-12-07 23:08:46
【问题描述】:

我正在尝试使用 Highcharts 在世界地图上可视化数据值。

最大值应在地图上显示为黑色填充,最小值应显示为白色区域。但是绘制的颜色与 minColor 和 maxColor 设置不匹配。

是我做错了什么还是 Highmaps 中的错误?

这是完整的示例代码。我还准备了一个 JSFiddle 模拟。感谢您的帮助。

// sample data
var values = [
  {
    code: "PL",
    value: 743
  },
  {
    code: "FR",
    value: 8205
  },
  {
    code: "DE",
    value: 2303
  },
  {
    code: "BR",
    value: 9404
  },
  {
    code: "ZA",
    value: 2937
  },
  {
    code: "ES",
    value: 2390
  },
  {
    code: "IE",
    value: 2604
  },
  {
    code: "UK",
    value: 5302
  },
  {
    code: "US",
    value: 5178
  }
];

// init min/max with first item
var valuesMin = values[0].value;
var valuesMax = values[0].value;

// find the real min and max
for(var i=0; i<=values.length-1; i++) {
  // save max of all interactions
  if (values[i].value > valuesMax) {
    valuesMax = values[i].value;
  }
  // save min of all interactions
  if (values[i].value < valuesMin) {
    valuesMin = values[i].value;
  }
}

// doublecheck min and max boundaries
console.log(valuesMin);
console.log(valuesMax);

// Initiate the chart
var config = {
  chart: {
    renderTo: 'container',
    type: 'map',
    spacing: [0,0,0,0],
    plotBorderWidth: 0,
    plotBackgroundColor: '#ffffff'
  },

  title: {
    text: ''
  },
  subtitle: {
    text: ''
  },
  legend: {
    enabled: false
  },
  credits: {
    enabled: false
  },
  tooltip: {
    enabled: false
  },
  mapNavigation: {
    enabled: false
  },

  colorAxis: {
    minColor: '#ffffff',
    maxColor: '#000000',
    min: valuesMin,
    max: valuesMax,
    minorTickInterval: 0.1,
    tickLength: 0,
    type: 'linear'
  },

  plotOptions: {
    map: {
      states: {
        hover: {
          enabled: false
        },
        normal: {
          animation: false
        }
      }
    }
  },

  // The map series
  series : [
    {
      mapData: Highcharts.maps['custom/world'],
      data : values,
      joinBy: ['iso-a2', 'code']
    }

  ]
};

console.log(values);

var chart = new Highcharts.Map(config);

小提琴http://jsfiddle.net/tomexx/bpg544f4/

【问题讨论】:

  • 你的小提琴不工作,在控制台看到 js 错误。
  • 对不起,我可以正确看到它(在 Chrome 中)。

标签: javascript highcharts highmaps


【解决方案1】:

您的色轴 minmax 正在四舍五入。来自the API

如果startOnTick 选项为真,则最小值可能会向下舍入。

默认为true。要解决此问题,只需添加以下代码:

colorAxis: {
    // ...
    startOnTick: false,
    endOnTick: false
}

this updated JSFiddle 演示。

【讨论】:

  • 谢谢你!我欠你一个人情!每当您在布拉格时,请与我联系,您会得到几杯啤酒。 ;)
  • 没问题!可惜我两个月前才在那里:)
猜你喜欢
  • 1970-01-01
  • 2019-03-26
  • 1970-01-01
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多