首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >amcharts yaxis多系列同步

amcharts yaxis多系列同步
EN

Stack Overflow用户
提问于 2020-06-09 08:49:17
回答 1查看 141关注 0票数 0

晚上好,我有一个多系列的图形,有5个系列,我需要同步轴,所有的轴都是相同的,但在我的代码中,我不知道怎么做,有人能帮我吗?这段代码工作正常,但没有同步。谢谢

我的代码是:

代码语言:javascript
复制
 function createAxisAndSeries(field, name, opposite, bullet) {
  var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
   var series = chart.series.push(new am4charts.LineSeries());
  series.dataFields.valueY = field;
  series.dataFields.categoryX = "mesdia";
  series.strokeWidth = 2;
  series.yAxis = valueAxis;
  series.name = name;
  series.minBulletDistance = 10;

  var interfaceColors = new am4core.InterfaceColorSet();

  switch(bullet) {
    case "triangle":
      valueAxis.renderer.line.disabled = true; //disables axis line
      valueAxis.renderer.labels.template.disabled = true; //disables labels
      valueAxis.renderer.grid.template.disabled = true;  //disables grid
      var bullet = series.bullets.push(new am4charts.Bullet());
      bullet.horizontalCenter = "middle";
      bullet.verticalCenter = "middle";

      var triangle = bullet.createChild(am4core.Triangle);
      triangle.stroke = interfaceColors.getFor("background");
      triangle.strokeWidth = 2;
      triangle.direction = "top";
      break;
    case "rectangle":
      valueAxis.renderer.line.disabled = true; //disables axis line
      valueAxis.renderer.labels.template.disabled = true; //disables labels
      valueAxis.renderer.grid.template.disabled = true;  //disables grid
      var bullet = series.bullets.push(new am4charts.Bullet());
      bullet.horizontalCenter = "middle";
      bullet.verticalCenter = "middle";

      var rectangle = bullet.createChild(am4core.Rectangle);
      rectangle.stroke = interfaceColors.getFor("background");
      rectangle.strokeWidth = 2;
      break;
    default:
      var bullet = series.bullets.push(new am4charts.CircleBullet());
      bullet.circle.stroke = interfaceColors.getFor("background");
      bullet.circle.strokeWidth = 2;
      break;
  }

  valueAxis.renderer.line.stroke = series.stroke;
  valueAxis.renderer.labels.template.fill = series.stroke;
  valueAxis.renderer.opposite = opposite;
  valueAxis.renderer.grid.template.disabled = true;
}

createAxisAndSeries("a2020", "2020", false, "default");
createAxisAndSeries("a2019", "2019", false, "circle");
createAxisAndSeries("a2018", "2018", false, "triangle");
createAxisAndSeries("a2017", "2017", false, "rectangle");
createAxisAndSeries("a2016", "2016", false, "rectangle");
EN

回答 1

Stack Overflow用户

发布于 2020-06-10 05:06:00

我知道怎么做我需要的..我必须像这样修改代码

代码语言:javascript
复制
function createAxisAndSeries(field, name, opposite, bullet) {
  var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
  **if(chart.yAxes.indexOf(valueAxis) != 0){
    valueAxis.syncWithAxis = chart.yAxes.getIndex(0);
  }**
  //valueAxis.disabled=true;
  var series = chart.series.push(new am4charts.LineSeries());
  series.dataFields.valueY = field;
  series.dataFields.categoryX = "mesdia";
  series.strokeWidth = 2;
  **series.yAxis = chart.yAxes.getIndex(0);**
  series.name = name;
  series.tooltipText = "{name}: [bold]{valueY}[/]";
  series.minBulletDistance = 10;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62273323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档