web-dev-qa-db-ja.com

Bootstrapでチャートを実装するにはどうすればよいですか?

ここでは、リポジトリの背景(実際には微妙です)の棒グラフを参照しています:例: https://github.com/search?l=Ruby&q=stars%3A%3E1&s=forks&type =リポジトリ

私が持っているのは表であり、表のセルの背景をユーザーの進捗状況の棒グラフにしたいのです。このことをどのように行うかについてのポインタはありますか?

17
Daryll Santos

HighCharts を使用することをお勧めします。統合がとても簡単で簡単です。

例:

[〜#〜] html [〜#〜]

<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>

<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>

スクリプト:

$(function () {
        $('#container').highcharts({
            chart: {
                type: 'column'
            },
            title: {
                text: 'Monthly Average Rainfall'
            },
            subtitle: {
                text: 'Source: WorldClimate.com'
            },
            xAxis: {
                categories: [
                    'Jan',
                    'Feb',
                    'Mar',
                    'Apr',
                    'May',
                    'Jun',
                    'Jul',
                    'Aug',
                    'Sep',
                    'Oct',
                    'Nov',
                    'Dec'
                ]
            },
            yAxis: {
                min: 0,
                title: {
                    text: 'Rainfall (mm)'
                }
            },
            tooltip: {
                headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
                pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
                    '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
                footerFormat: '</table>',
                shared: true,
                useHTML: true
            },
            plotOptions: {
                column: {
                    pointPadding: 0.2,
                    borderWidth: 0
                }
            },
            series: [{
                name: 'Tokyo',
                data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]

            }, {
                name: 'New York',
                data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]

            }, {
                name: 'London',
                data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]

            }, {
                name: 'Berlin',
                data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]

            }]
        });
    });

そして、これが fiddle です。

26
rony36

GithubはHTML canvas 要素を使用してこれを行いました。

この仕様は、HTMLキャンバス要素の2Dコンテキストを定義します。 2Dコンテキストは、キャンバスの描画面にグラフィックを描画および操作するためのオブジェクト、メソッド、およびプロパティを提供します。

ブラウザインスペクターを使用する場合、すべてのリスト要素内に、canvas要素を持つdivが表示されます。

<div class="participation-graph">
   <canvas class="bars" data-color-all="#F5F5F5" data-color-owner="#F5F5F5" data-source="/mxcl/homebrew/graphs/owner_participation" height="80" width="640"></canvas>
</div>

CSS(z-index、position ...)を使用すると、そのキャンバスをli要素またはテーブルの背景に配置できます(ケース内)。

要件に合うjqueryプラグインについて 検索 を実行します。

このポインタがそれを達成するのに役立つことを願っています。

4
Lan

以前の回答よりも後ですが、とにかく役に立つかもしれません。 gRaphaëlChartingは時代遅れの代替品かもしれませんが、より最近のより良いオプションは http://chartjs.org かもしれません-まだFlashなしで、MITライセンス、最近更新されたGitHub。

私は前回の回答以来自分で使っていたので、今ではいくつかのWebアプリと他のアプリがあります。

新たにプロジェクトを開始する場合は、最初にChart.jsを試してください。

3
Alex Mazzariol

2018年に更新

次に、ChartJでBootstrap 4を使用した簡単な例を示します。チャートにHTML5 Canvas要素を使用...

<div class="container">
    <div class="row">
        <div class="col-md-6">
            <div class="card">
                <div class="card-body">
                    <canvas id="chLine"></canvas>
                </div>
            </div>
        </div>
     </div>     
</div>

次に、適切なJSを使用してグラフを作成します...

var colors = ['#007bff','#28a745'];
var chLine = document.getElementById("chLine");
var chartData = {
  labels: ["S", "M", "T", "W", "T", "F", "S"],
  datasets: [{
    data: [589, 445, 483, 503, 689, 692, 634],
    borderColor: colors[0],
    borderWidth: 4,
    pointBackgroundColor: colors[0]
  },
  {
    data: [639, 465, 493, 478, 589, 632, 674],
    borderColor: colors[1],
    borderWidth: 4,
    pointBackgroundColor: colors[1]
  }]
};
if (chLine) {
  new Chart(chLine, {
  type: 'line',
  data: chartData,
  options: {
    scales: {
      yAxes: [{
        ticks: {
          beginAtZero: false
        }
      }]
    },
    legend: {
      display: false
    }
  }
  });
}

Bootstrap 4 Charts Demo

1
Zim

間違いなくパーティーに遅れました。とにかく、HTML5キャンバスに関するLanの言及に興味がある人のために、 gRaphaëlCharting を使用できます。これは(HighChartsデュアルライセンスの代わりに)MITライセンスを持っています。ブートストラップ固有のものでもないため、より一般的な提案です。

HighChartsデモは非常にきれいに見えることを認めざるを得ず、gRaphaëlが習熟する前に理解するのは非常に難しいことを警告する必要があります。とにかく、gRaphaëlチャートにニースの機能(ツールヒントやズーム効果など)を簡単に追加できるので、努力する価値があるかもしれません。

0
Alex Mazzariol