Chart.jsマルチバースタックチャートに複数のラベルを表示する方法

ラドゥ・トゥルトイ

各列の下に異なるラベルを表示し、グループ全体に別のラベルを付けるにはどうすればよいですか?

下の写真でわかるように、各列にはfontawesomeアイコンを使用しますが、メイングループには別のラベルを使用します。faアイコンの使い方について他の回答を見つけましたが、各バーの下に配置する方法がわかりません。

個別の列を接続するトレンドラインはそれほど重要ではありませんが、それらを追加する方法も見つけられれば素晴らしいと思います。

また、チャートは大量のデータを保持でき、ラベルを表示する必要があるため、スクロール可能である必要があります。巻物の例もいくつか見つけました。

どんな情報でも大歓迎です。または、これまたは私のニーズに合うものを実装できる他のオープンソースチャートフレームワークはありますか?

チャート

白い帽子

グーグルチャートを使用して...

チャートの'ready'イベントでは、
チャートメソッドを使用できます->getChartLayoutInterface()

var chartLayout = chart.getChartLayoutInterface();

インターフェイスには、バーの位置を取得するためgetBoundingBox()
に要求されたチャート要素の位置を返すメソッド->があり
ます。

var barBounds = chartLayout.getBoundingBox('bar#0#0');

ここで、最初#0はシリーズで、2番目は行で
'bar#0#0'、最初の行の最初のバーを取得します

軸ラベルの位置も取得できます...

var labelBounds = chartLayout.getBoundingBox('hAxis#0#label#0');

我々は、アイコン配置するバーとラベルの境界を組み合わせて使用することができます
私たちが望むleftバーからの位置を、そしてtopラベルの位置を

次の作業スニペットを参照してください。
列プロパティはアイコン名を格納するために使用され
、x軸ラベルは
アイコンが配置されるとグループに使用され、軸ラベルはスペースを空けるために下に移動されます

google.charts.load('current', {
  packages: ['corechart']
}).then(function () {
  var data = new google.visualization.DataTable({
    cols: [
      {label: 'x', type: 'string'},
      {label: 'file', type: 'number', p: {icon: 'fa-file'}},
      {label: 'database', type: 'number', p: {icon: 'fa-database'}},
      {label: 'random', type: 'number', p: {icon: 'fa-random'}},
    ],
    rows: [
      {c:[{v: 'Label 1'}, {v: 11}, {v: 6}, {v: 15}]},
      {c:[{v: 'Label 2'}, {v: 8}, {v: null}, {v: 12}]},
      {c:[{v: 'Label 3'}, {v: 6}, {v: 8}, {v: 18}]},
      {c:[{v: 'Label 4'}, {v: null}, {v: 1}, {v: 16}]},
    ]
  });

  var options = {
    bar: {
      groupWidth: '50%',
      width: 20
    },
    colors: ['#ffc107', '#d32f2f', '#00bcd4'],
    height: 600,
    legend: 'none',
    title: 'Capacities',
    width: 1000,
  };

  var container = document.getElementById('chart_div');
  var chart = new google.visualization.ColumnChart(container);

  google.visualization.events.addListener(chart, 'ready', function () {
    // initialize bounds variables
    var axisLabels = container.getElementsByTagName('text');
    var chartLayout = chart.getChartLayoutInterface();
    var chartBounds = chartLayout.getChartAreaBoundingBox();
    var containerBounds = container.getBoundingClientRect();
    var labelIndex;

    // add icons
    for (var r = 0; r < data.getNumberOfRows(); r++) {
      var barBounds;
      var icon;
      var iconBounds;
      var labelBounds = chartLayout.getBoundingBox('hAxis#0#label#' + r);
      for (var c = 1; c < data.getNumberOfColumns(); c++) {
        barBounds = chartLayout.getBoundingBox('bar#' + (c - 1) + '#' + r);
        if (barBounds !== null) {
          icon = container.appendChild(document.createElement('i'));
          icon.className = 'fa ' + data.getColumnProperty(c, 'icon');
          icon.style.position = 'absolute';
          iconBounds = icon.getBoundingClientRect();
          icon.style.top = (containerBounds.top + labelBounds.top) + 'px';
          icon.style.left = (barBounds.left + containerBounds.left + (barBounds.width / 2) - (iconBounds.width / 2)) + 'px';
        }
      }

      // move axis label down
      labelIndex = -1;
      Array.prototype.forEach.call(axisLabels, function(label) {
        if (label.getAttribute('text-anchor') === 'middle') {
          labelIndex++;
          if (labelIndex === r) {
            label.setAttribute('y', (parseFloat(label.getAttribute('y')) + (iconBounds.height * 2)));
          }
        }
      });
    }
  });

  chart.draw(data, options);
});
i {
  color: #00bcd4;
}
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

特定のデータラベルのchart.jsでツールチップを非表示にする方法は?

分類Dev

チャートプロパティのイベントロードでchart.renderer.textを使用して、デフォルトのツールチップと同等のカスタムツールチップをマウスオーバーに配置する方法

分類Dev

Chart.jsチャートの最終ラベルを削除する方法

分類Dev

Chart.jsレーダーチャート外部ラベルを削除する方法

分類Dev

Chart.js-ツールチップを使用せずにバブルチャート要素にテキスト/ラベルを追加しますか?

分類Dev

Chart.jsドーナツチャートに2番目のラベルセットを表示するにはどうすればよいですか?

分類Dev

JavaScript Chart.js-ツールチップに表示するカスタムデータフォーマット

分類Dev

混合チャートのChart.jsツールチップホバーのカスタマイズ

分類Dev

チャート内にラベルを表示-angular.jsとchart.js

分類Dev

Chart.jsのマルチラベルツールチップ

分類Dev

Chart.js 2.0ドーナツグラフのツールチップをカスタマイズする方法

分類Dev

Chart.jsツールチップに%を表示する方法

分類Dev

Chart.jsツールチップに%を表示する方法

分類Dev

p:chart(バー)のデータチップにx軸ラベルを動的に表示します

分類Dev

[MIXED CHART.JS]各チャートのツールチップのラベルを操作するにはどうすればよいですか?

分類Dev

Chart.js v2キャンバスの外にあるカスタムボタンをクリックしてツールチップポップアップをナビゲートする方法は?

分類Dev

チャートを更新するときにchart.jsのラベルを変更する

分類Dev

chart.jsのレーダーチャートラベルを削除します

分類Dev

jsonfileデータから複数のchart.jsチャートを作成する

分類Dev

Chart.jsカスタムX軸ラベル付きのバブルチャート

分類Dev

Chart.jsの水平バーラベルを複数行にする

分類Dev

chart.jsでツールチップタイトルのデフォルトのコールバックを設定する方法

分類Dev

チャートdivのスタイル属性で高さを設定すると、HorizontalBarチャートがキャンバスの下に表示されます(Chart.js 2.9.4)

分類Dev

Chart.jsのタイトルカラーボックスを削除する方法

分類Dev

Ajax / JSONメソッドでchart.js(バブルチャート)のデータベースのデータを使用するにはどうすればよいですか?

分類Dev

chart.js のグラフのツールチップにデータを追加する方法

分類Dev

ツールチップから特定のデータ値にアクセスする方法-Chart.js

分類Dev

chart.jsのツールチップにカスタムタイトルを追加する

分類Dev

chart.js棒グラフのツールチップをカスタマイズする

Related 関連記事

  1. 1

    特定のデータラベルのchart.jsでツールチップを非表示にする方法は?

  2. 2

    チャートプロパティのイベントロードでchart.renderer.textを使用して、デフォルトのツールチップと同等のカスタムツールチップをマウスオーバーに配置する方法

  3. 3

    Chart.jsチャートの最終ラベルを削除する方法

  4. 4

    Chart.jsレーダーチャート外部ラベルを削除する方法

  5. 5

    Chart.js-ツールチップを使用せずにバブルチャート要素にテキスト/ラベルを追加しますか?

  6. 6

    Chart.jsドーナツチャートに2番目のラベルセットを表示するにはどうすればよいですか?

  7. 7

    JavaScript Chart.js-ツールチップに表示するカスタムデータフォーマット

  8. 8

    混合チャートのChart.jsツールチップホバーのカスタマイズ

  9. 9

    チャート内にラベルを表示-angular.jsとchart.js

  10. 10

    Chart.jsのマルチラベルツールチップ

  11. 11

    Chart.js 2.0ドーナツグラフのツールチップをカスタマイズする方法

  12. 12

    Chart.jsツールチップに%を表示する方法

  13. 13

    Chart.jsツールチップに%を表示する方法

  14. 14

    p:chart(バー)のデータチップにx軸ラベルを動的に表示します

  15. 15

    [MIXED CHART.JS]各チャートのツールチップのラベルを操作するにはどうすればよいですか?

  16. 16

    Chart.js v2キャンバスの外にあるカスタムボタンをクリックしてツールチップポップアップをナビゲートする方法は?

  17. 17

    チャートを更新するときにchart.jsのラベルを変更する

  18. 18

    chart.jsのレーダーチャートラベルを削除します

  19. 19

    jsonfileデータから複数のchart.jsチャートを作成する

  20. 20

    Chart.jsカスタムX軸ラベル付きのバブルチャート

  21. 21

    Chart.jsの水平バーラベルを複数行にする

  22. 22

    chart.jsでツールチップタイトルのデフォルトのコールバックを設定する方法

  23. 23

    チャートdivのスタイル属性で高さを設定すると、HorizontalBarチャートがキャンバスの下に表示されます(Chart.js 2.9.4)

  24. 24

    Chart.jsのタイトルカラーボックスを削除する方法

  25. 25

    Ajax / JSONメソッドでchart.js(バブルチャート)のデータベースのデータを使用するにはどうすればよいですか?

  26. 26

    chart.js のグラフのツールチップにデータを追加する方法

  27. 27

    ツールチップから特定のデータ値にアクセスする方法-Chart.js

  28. 28

    chart.jsのツールチップにカスタムタイトルを追加する

  29. 29

    chart.js棒グラフのツールチップをカスタマイズする

ホットタグ

アーカイブ