Amcharts V4チャート全体をリロードせずにデータを変更するにはどうすればよいですか?

マジェスティック

ここのamchartsV3で実行できるように、グラフを再読み込みせずに新しいデータでグラフを更新したいと思います

しかし、V4では動作させることができません。私はそれを行う方法を扱っているがV4では決してないいくつかのリンクを見つけました。amCharts V3の例に基づいたデータでペン作成しましたが、機能しません。

JSコード:

var globalVars = {unloaded:true};
var chart;
$(window).bind('beforeunload', function(){
    console.log("before unload");
    globalVars.unloaded = true;
});

$(document).ready(function() {
    getStatsByFlowByOperation();
});

function reloadData() {
    var newData = [
        {
            "OPERATION_NAME": "INIT",
            "NEW": 0,
            "READY": 2,
            "RUNNING": 0,
            "DONE": 0
        },
        {
            "OPERATION_NAME": "COPY",
            "NEW": 0,
            "READY": 2,
            "RUNNING": 2,
            "DONE": 2
        },
        {
            "OPERATION_NAME": "MERGE",
            "NEW": 0,
            "READY": 0,
            "RUNNING": 0,
            "DONE": 11
        }
    ];
    return newData;
}

function loadNewData() {
    var chartData = reloadData();
    chart.dataProvider = chartData;
    chart.validateData();
}

function getStatsByFlowByOperation(){

  am4core.useTheme(am4themes_material);
  chart = am4core.create("chartdiv", am4charts.XYChart);
  chart.hiddenState.properties.opacity = 0;

  var newData = [
    {
      "OPERATION_NAME": "INIT",
      "NEW": 2,
      "READY": 0,
      "RUNNING": 0,
      "DONE": 0
    },
    {
      "OPERATION_NAME": "COPY",
      "NEW": 2,
      "READY": 4,
      "RUNNING": 0,
      "DONE": 0
    },
    {
      "OPERATION_NAME": "MERGE",
      "NEW": 0,
      "READY": 0,
      "RUNNING": 5,
      "DONE": 6
    }
  ];

  chart.data = newData;

  chart.colors.step = 2;
  chart.padding(30, 30, 10, 30);
  chart.legend = new am4charts.Legend();

  var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());
  categoryAxis.dataFields.category = "OPERATION_NAME";
  categoryAxis.renderer.grid.template.location = 0;

  var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
  valueAxis.renderer.inside = true;
  valueAxis.renderer.labels.template.disabled = true;
  valueAxis.min = 0;

  var listOfStatus = new Array();

  for(var obj in newData){
    if(newData.hasOwnProperty(obj)){
      for(var prop in newData[obj]){
        if(newData[obj].hasOwnProperty(prop)){
          if(prop == "NEW"
             || prop == "DISABLED"
             || prop == "SKIPPED"
             || prop == "READY"
             || prop == "DISPATCHED"
             || prop == "RUNNING"
             || prop == "ERROR_RESUMED"
             || prop == "ERROR"
             || prop == "FINISHED"
             || prop == "TIMEOUT"
             || prop == "RESUBMITTED"
             || prop == "CANCELLED"
             || prop == "DONE") {
            listOfStatus.push(prop);
          }
        }
      }
    }
  }

  var uniqueStatus = [];
  $.each(listOfStatus, function(i, el){
    if($.inArray(el, uniqueStatus) === -1) uniqueStatus.push(el);
  });

  var allStatus = [];
  allStatus.push("NEW");
  allStatus.push("DISABLED");
  allStatus.push("SKIPPED");
  allStatus.push("READY");
  allStatus.push("DISPATCHED");
  allStatus.push("RUNNING");
  allStatus.push("ERROR_RESUMED");
  allStatus.push("ERROR");
  allStatus.push("FINISHED");
  allStatus.push("TIMEOUT");
  allStatus.push("RESUBMITTED");
  allStatus.push("CANCELLED");
  allStatus.push("DONE");

  for(var i = 0; i < allStatus.length; i++) {
    if(uniqueStatus.includes(allStatus[i])) {
      createSeries(allStatus[i], allStatus[i]);
    }
  }
}

// Create series
function createSeries(field, name) {

  // Set up series
  var series = chart.series.push(new am4charts.ColumnSeries());
  series.name = name;
  series.dataFields.valueY = field;
  series.dataFields.categoryX = "OPERATION_NAME";
  series.sequencedInterpolation = true;

  // Make it stacked
  series.stacked = true;

  // Configure columns
  series.columns.template.width = am4core.percent(60);
  series.columns.template.tooltipText = "[bold]{name}[/]\n[font-size:14px]{categoryX}: {valueY}";

  // Add label
  var labelBullet = series.bullets.push(new am4charts.LabelBullet());
  labelBullet.label.text = "{valueY}";
  labelBullet.locationY = 0.5;

  return series;
}

HTMLコード:

<div id="chartdiv"></div>
<input type="button" value="Load new data" onclick="loadNewData();">

<!-- for graphes -->
<script src="https://www.amcharts.com/lib/4/core.js"></script>
<script src="https://www.amcharts.com/lib/4/charts.js"></script>
<script src="https://www.amcharts.com/lib/4/themes/material.js"></script>

アイデアはありますか?どうもありがとう !

notacouch

まったく新しいデータセットグラフを更新するには、グラフのデータを再割り当てするだけです。

function loadNewData() {
    chart.data = reloadData();
}

これがあなたのペンのフォークです:

https://codepen.io/team/amcharts/pen/a9050805dfa3cbfcf1da185348a11dcd

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

amCharts v4のXYChartScrollbarからシリーズを削除するにはどうすればよいですか?

分類Dev

amCharts v4で外部イベントにシリーズを追加するにはどうすればよいですか?

分類Dev

amChartsでガントチャートの高さを変更するにはどうすればよいですか?

分類Dev

javascriptを使用してamChartsのチャートオプションを変更するにはどうすればよいですか?

分類Dev

amchartsのシリアルチャートにカスタムy軸ラベルを追加するにはどうすればよいですか?

分類Dev

amchartsのパイのテーマを変更するにはどうすればよいですか?

分類Dev

カスタムデータ構成のamchartsを使用してソリッドゲージチャートを作成するにはどうすればよいですか?

分類Dev

amCharts v4のXY棒グラフに条件付きでプロパティを設定するにはどうすればよいですか?

分類Dev

amcharts4のチャートのタイトルを動的に変更する

分類Dev

StockEvent バルーンの境界線の色を変更するにはどうすればよいですか [AmCharts v3]

分類Dev

個々の国にハイパーリンクを追加するにはどうすればよいですか?AMCharts

分類Dev

amchartsで垂直スクロールを実現するにはどうすればよいですか

分類Dev

amchartsとdjangoを使用してデータをリアルタイムで表示するにはどうすればよいですか?

分類Dev

amchartsを使用してマルチリングドーナツ円グラフを作成するにはどうすればよいですか?

分類Dev

amCharts v4で条件付きで色を設定し、円グラフのスライスにグラデーションを作成するにはどうすればよいですか?

分類Dev

amChartsでグループ化されたバーを作成するにはどうすればよいですか?

分類Dev

基礎となるデータの範囲外のAmchartsで株式イベントを表示するにはどうすればよいですか?

分類Dev

AmCharts 4 DataSource:すべての外部データがロードされるのをチャートに強制的に待機させます

分類Dev

AmChartsの凡例labelTextを変更するにはどうすればよいですか?

分類Dev

amChartsでデータのカスタムカラーを設定するにはどうすればよいですか

分類Dev

amCharts棒グラフバルーンの背景色を変更するにはどうすればよいですか?

分類Dev

複数のamcharts角度ゲージを表示するにはどうすればよいですか?

分類Dev

amChartsでy軸のタイトルを水平に表示するにはどうすればよいですか?

分類Dev

amcharts4でLineSeriesのclick \ hitイベントを追加するにはどうすればよいですか?

分類Dev

amchartsマップにタイトルを追加するにはどうすればよいですか?

分類Dev

amcharts のタイトル ボックスの色を変更するにはどうすればよいですか

分類Dev

AmChartsでスクロールバーのスライダーを左に移動するにはどうすればよいですか?

分類Dev

amchartsローソク足チャートでデフォルトのカスタム時間範囲をどのように設定しますか?

分類Dev

amChartsチャートを削除する方法

Related 関連記事

  1. 1

    amCharts v4のXYChartScrollbarからシリーズを削除するにはどうすればよいですか?

  2. 2

    amCharts v4で外部イベントにシリーズを追加するにはどうすればよいですか?

  3. 3

    amChartsでガントチャートの高さを変更するにはどうすればよいですか?

  4. 4

    javascriptを使用してamChartsのチャートオプションを変更するにはどうすればよいですか?

  5. 5

    amchartsのシリアルチャートにカスタムy軸ラベルを追加するにはどうすればよいですか?

  6. 6

    amchartsのパイのテーマを変更するにはどうすればよいですか?

  7. 7

    カスタムデータ構成のamchartsを使用してソリッドゲージチャートを作成するにはどうすればよいですか?

  8. 8

    amCharts v4のXY棒グラフに条件付きでプロパティを設定するにはどうすればよいですか?

  9. 9

    amcharts4のチャートのタイトルを動的に変更する

  10. 10

    StockEvent バルーンの境界線の色を変更するにはどうすればよいですか [AmCharts v3]

  11. 11

    個々の国にハイパーリンクを追加するにはどうすればよいですか?AMCharts

  12. 12

    amchartsで垂直スクロールを実現するにはどうすればよいですか

  13. 13

    amchartsとdjangoを使用してデータをリアルタイムで表示するにはどうすればよいですか?

  14. 14

    amchartsを使用してマルチリングドーナツ円グラフを作成するにはどうすればよいですか?

  15. 15

    amCharts v4で条件付きで色を設定し、円グラフのスライスにグラデーションを作成するにはどうすればよいですか?

  16. 16

    amChartsでグループ化されたバーを作成するにはどうすればよいですか?

  17. 17

    基礎となるデータの範囲外のAmchartsで株式イベントを表示するにはどうすればよいですか?

  18. 18

    AmCharts 4 DataSource:すべての外部データがロードされるのをチャートに強制的に待機させます

  19. 19

    AmChartsの凡例labelTextを変更するにはどうすればよいですか?

  20. 20

    amChartsでデータのカスタムカラーを設定するにはどうすればよいですか

  21. 21

    amCharts棒グラフバルーンの背景色を変更するにはどうすればよいですか?

  22. 22

    複数のamcharts角度ゲージを表示するにはどうすればよいですか?

  23. 23

    amChartsでy軸のタイトルを水平に表示するにはどうすればよいですか?

  24. 24

    amcharts4でLineSeriesのclick \ hitイベントを追加するにはどうすればよいですか?

  25. 25

    amchartsマップにタイトルを追加するにはどうすればよいですか?

  26. 26

    amcharts のタイトル ボックスの色を変更するにはどうすればよいですか

  27. 27

    AmChartsでスクロールバーのスライダーを左に移動するにはどうすればよいですか?

  28. 28

    amchartsローソク足チャートでデフォルトのカスタム時間範囲をどのように設定しますか?

  29. 29

    amChartsチャートを削除する方法

ホットタグ

アーカイブ