Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AMcharts:根据值的范围设置FillColor字段的颜色_Javascript_Charts_Amcharts - Fatal编程技术网

Javascript AMcharts:根据值的范围设置FillColor字段的颜色

Javascript AMcharts:根据值的范围设置FillColor字段的颜色,javascript,charts,amcharts,Javascript,Charts,Amcharts,因此,如果值在某个范围内,我想改变单个条的颜色。如何在Javascript中实现这一点?我真的不想弄乱我的JSON数据 var chart = AmCharts.makeChart( "chartdiv", { "type": "serial", "theme": "none", "dataProvider": [ { "country": "USA", "visits": 2025 }, { "country": "China", "visits": 1882

因此,如果值在某个范围内,我想改变单个条的颜色。如何在Javascript中实现这一点?我真的不想弄乱我的JSON数据

var chart = AmCharts.makeChart( "chartdiv", {
 "type": "serial",
 "theme": "none",
 "dataProvider": [ {
   "country": "USA",
   "visits": 2025
 }, {
   "country": "China",
   "visits": 1882
 }, {
   "country": "Japan",
   "visits": 1809
 }, {
   "country": "Germany",
   "visits": 1322
 }, {
   "country": "UK",
   "visits": 1122
 }, {
   "country": "France",
   "visits": 1114
 }, {
   "country": "India",
   "visits": 984
 }, {
   "country": "Spain",
   "visits": 711
 }, {
   "country": "Netherlands",
   "visits": 665
 }, {
   "country": "Russia",
   "visits": 580
 }, {
   "country": "South Korea",
   "visits": 443
 }, {
   "country": "Canada",
   "visits": 441
 }, {
   "country": "Brazil",
   "visits": 395
 } ],
 "valueAxes": [ {
   "gridColor": "#FFFFFF",
   "gridAlpha": 0.2,
   "dashLength": 0
 } ],
 "gridAboveGraphs": true,
 "startDuration": 1,
 "graphs": [ {
   "balloonText": "[[category]]: <b>[[value]]</b>",
   "fillAlphas": 0.8,
   "lineAlpha": 0.2,
   "fillColors": changeColour,
   "type": "column",
   "valueField": "visits"
 } ],
 "chartCursor": {
   "categoryBalloonEnabled": false,
   "cursorAlpha": 0,
   "zoomable": false
 },
 "categoryField": "country",
 "categoryAxis": {
   "gridPosition": "start",
   "gridAlpha": 0,
   "tickPosition": "start",
   "tickLength": 20
 },
 "export": {
   "enabled": true
 }

  } );

  function changeColour(value){
  /*var colour;
       if (0 <= value && value <= 40){
    colour = "#ff3333";
   } else if (41 <= value && value <= 66){
    colour = "#ff751a";
   } else if (value > 66){
    colour = "#009933";
   }*/
  //return colour;
  return "#ff3333";
  }
var chart=AmCharts.makeChart(“chartdiv”{
“类型”:“串行”,
“主题”:“无”,
“数据提供者”:[{
“国家”:“美国”,
“访问”:2025年
}, {
“国家”:“中国”,
“访问”:1882年
}, {
“国家”:“日本”,
“访问”:1809
}, {
“国家”:“德国”,
“访问”:1322
}, {
“国家”:“英国”,
“访问”:1122
}, {
“国家”:“法国”,
“访问”:1114
}, {
“国家”:“印度”,
“访问”:984
}, {
“国家”:“西班牙”,
“访问”:711
}, {
“国家”:“荷兰”,
“访问”:665
}, {
“国家”:“俄罗斯”,
“访问”:580
}, {
“国家”:“韩国”,
“访问”:443
}, {
“国家”:“加拿大”,
“访问”:441
}, {
“国家”:“巴西”,
“访问”:395
} ],
“valueAxes”:[{
“gridColor”:“#FFFFFF”,
“gridAlpha”:0.2,
“dashLength”:0
} ],
“网格图”:没错,
“起始持续时间”:1,
“图表”:[{
“文本”:“[[category]]:[[value]]”,
“填充字母”:0.8,
“lineAlpha”:0.2,
“填充颜色”:更改颜色,
“类型”:“列”,
“valueField”:“访问”
} ],
“图表光标”:{
“CategoryBallooneEnabled”:false,
“cursorAlpha”:0,
“可缩放”:错误
},
“类别字段”:“国家”,
“分类法”:{
“网格位置”:“开始”,
“gridAlpha”:0,
“滴答声位置”:“开始”,
“滴答声长度”:20
},
“出口”:{
“已启用”:真
}
} );
功能更改颜色(值){
/*颜色变异;

如果(0图表不支持自定义函数作为颜色格式化程序

可能唯一的解决方案是预处理数据,并为每个数据点设置
fillColorsField

这似乎是一个完美的工具,用于所有类型的预处理

让我们“发明”一个新的参数
fillColorsFunction
,我们将使用它。我们可以重用您的函数
ChangeColor

"graphs": [{
  "balloonText": "[[category]]: <b>[[value]]</b>",
  "fillAlphas": 0.8,
  "lineAlpha": 0.2,
  "fillColorsFunction": changeColour,
  "type": "column",
  "valueField": "visits"
}],

图表不支持自定义函数作为颜色的格式化程序

可能唯一的解决方案是预处理数据,并为每个数据点设置
fillColorsField

这似乎是一个完美的工具,用于所有类型的预处理

让我们“发明”一个新的参数
fillColorsFunction
,我们将使用它。我们可以重用您的函数
ChangeColor

"graphs": [{
  "balloonText": "[[category]]: <b>[[value]]</b>",
  "fillAlphas": 0.8,
  "lineAlpha": 0.2,
  "fillColorsFunction": changeColour,
  "type": "column",
  "valueField": "visits"
}],

感谢@martynasmaI使用dataLoader插件从外部加载我的数据,即使在将chart.dataProvider提供的插件更改为chart.dataLoader.Updated我的答案后,这似乎也不起作用。感谢@martynasmaI使用dataLoader插件从外部加载我的数据,即使在更改了plugin从chart.dataProvider提供给chart.dataLoader.Updated我的答案。
"dataLoader": {
  "url": "data.php",
  "complete": function( chart ) {
    // iterate thorugh all graphs and check if they have
    // fillColorsFunction set
    for ( i = 0; i < chart.graphs.length; i++ ) {
      var graph = chart.graphs[ i ];
      if ( graph.fillColorsFunction !== undefined ) {
        // iterate thorugh all of the data and add color
        graph.fillColorsField = graph.valueField + "FillColor";
        for ( var x = 0; x < chart.dataProvider.length; x++ ) {
          var dp = chart.dataProvider[ x ];
          dp[ graph.fillColorsField ] = graph.fillColorsFunction.call( this, dp[ graph.valueField ] );
        }
      }
    }
  }
}