質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.21%

1ページ内に、GoogleChartsのグラフを複数表示させたい。

解決済

回答 5

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 5,690

Satochan24

score 84

2016/2/2追記

グラフが表示されない原因の一つが、データがない時だと分かりました。
グラフによっては、存在しないデータだけ非表示となるのですが、折れ線だとうまくいきませんでした。
JavaScriptで、データをPHPの変数で与えているときに、
変数の配列が空の場合は、対象データから外すことは可能でしょうか?

例えば、以下のコードで、$var_6が空の場合は、[●●●],までを非表示にするとか・・・

var data = google.visualization.arrayToDataTable([
          ['Year', '新規ユーザー', 'リピーター'],
          ['<?php echo $var_6[access]; ?>', <?php echo $var_6[newer]; ?>, <?php echo $var_6[repeater_count]; ?>],
          ['<?php echo $var_5[access]; ?>', <?php echo $var_5[newer]; ?>, <?php echo $var_5[repeater_count]; ?>],
          ['<?php echo $var_4[access]; ?>', <?php echo $var_4[newer]; ?>, <?php echo $var_4[repeater_count]; ?>],
          ['<?php echo $var_3[access]; ?>', <?php echo $var_3[newer]; ?>, <?php echo $var_3[repeater_count]; ?>],
          ['<?php echo $var_2[access]; ?>', <?php echo $var_2[newer]; ?>, <?php echo $var_2[repeater_count]; ?>],
          ['<?php echo $var[access]; ?>', <?php echo $var[newer]; ?>, <?php echo $var[repeater_count]; ?>],  
        ]);


※もともとの質問内容
JSONデータ取得済みの2つのファイル、array.jsonとarray2.jsonがあるのですが、
これらの2つのファイルを読み込む形でグラフを表示させたいと思っています。

しかし、それぞれ、1ページ内に表示させようとすると、どちらか一方しか表示されません。
最初は、関数名がぶつかっているのかと思い、drawChart2などに変更したのですが、
効果なし。可能な変数は名前を変えてみたのですがダメでした。

consoleログなどをところどころ、いじると、たまに、もう1方のグラフだけが出たりするので、
ひょっとすると、$.Deferred()が関係しているのかと推測している状況です。

他のサイトを見ても、GoogleChartsを使って複数のグラフを並べて表示させているので、
できるはずだと思うのですが…
何か考えられる原因があれば教えてください。

<script type="text/javascript">
      google.load("visualization", "1.1", {packages:["line"]});
      google.setOnLoadCallback(drawChart);

//JSONデータ加工処理
var result = [];
//console.log(typeof result);

function drawChart() {

        var df = $.Deferred();

    $(function(){
        $.ajax({
        url:'array.json',
        dataType:'json',
        }).done(function(data_j){
        console.log("success");
        console.log(typeof result);
    //document.write(data);

        var keys = Object.keys(data_j[0]);

    for (var i = 0; i < data_j.length; i++) {
        for (var j = 0; j < keys.length; j++) {
            var key = keys[j];
            //if(key == 'this'){key = '今月'};
            if (typeof result[j] == 'undefined') {
                result[j] = [ key == 'access_type' ? 'Month' : key ];
            }
            result[j].push(data_j[i][key]);
            }
            //document.write(result);
        }
        for(var k = 0; k < result.length; k++)
        {
                switch(result[k][0]){
                    case 'this':
                        result[k][0] = '今月';
                        break;
                    case 'one':
                        result[k][0] = '1ヶ月前';
                        break;
                    case 'two':
                        result[k][0] = '2ヶ月前';
                        break;
                    case 'three':
                        result[k][0] = '3ヶ月前';
                        break;
                    case 'four':
                        result[k][0] = '4ヶ月前';
                        break;
                    case 'five':
                        result[k][0] = '5ヶ月前';
                        break;
                    case 'six':
                        result[k][0] = '半年前';
                        break;
                    case 'seven':
                        result[k][0] = '7ヶ月前';
                        break;
                    case 'eight':
                        result[k][0] = '8ヶ月前';
                        break;
                    case 'nine':
                        result[k][0] = '9ヶ月前';
                        break;
                    case 'ten':
                        result[k][0] = '10ヶ月前';
                        break;
                    case 'eleven':
                        result[k][0] = '11ヶ月前';
                        break;
                    case 'year':
                        result[k][0] = '1年前';
                        break;

                }            
        }
        console.log(result);

        df.resolve();
        }).fail(function(){
        console.log("error");
        });
    });

        df.done(function(){
        var data = google.visualization.arrayToDataTable(result);

        var chart = new google.charts.Line(document.getElementById('chart_div'));

        chart.draw(data);

        });
        }

    </script> 
<div style="padding-top:20pt">
<h2>【グラフ】</h2>
    <div id="chart_div" style="width: 1200px; height: 500px;"></div>
</div><!--padding 20pt -->



<script type="text/javascript">
      google.load("visualization", "1.1", {packages:["line"]});
      google.setOnLoadCallback(drawChart);

//JSONデータ加工処理
var result3 = [];

function drawChart() {

        var df = $.Deferred();


    $(function(){
        $.ajax({
        url:'array2.json',
        dataType:'json',
        }).done(function(data_j){
        console.log("success");
        //console.log(typeof result);

        var keys = Object.keys(data_j[0]);

//document.write(keys2);


    for (var i = 0; i < data_j.length; i++) {
        for (var j = 0; j < keys.length; j++) {
            var key = keys[j];
            if (typeof result3[j] == 'undefined') {
                result3[j] = [ key == 'prefectures_name' ? 'Month' : key ];
            }
            result3[j].push(data_j[i][key]);
            }
            //document.write(result);
            //console.log(result3);
        }
        for(var k = 0; k < result3.length; k++)
        {
                switch(result3[k][0]){
                    case 'this':
                        result3[k][0] = '今月';
                        break;
                    case 'one':
                        result3[k][0] = '1ヶ月前';
                        break;
                    case 'two':
                        result3[k][0] = '2ヶ月前';
                        break;
                    case 'three':
                        result3[k][0] = '3ヶ月前';
                        break;
                    case 'four':
                        result3[k][0] = '4ヶ月前';
                        break;
                    case 'five':
                        result3[k][0] = '5ヶ月前';
                        break;
                    case 'six':
                        result3[k][0] = '半年前';
                        break;
                    case 'seven':
                        result3[k][0] = '7ヶ月前';
                        break;
                    case 'eight':
                        result3[k][0] = '8ヶ月前';
                        break;
                    case 'nine':
                        result3[k][0] = '9ヶ月前';
                        break;
                    case 'ten':
                        result3[k][0] = '10ヶ月前';
                        break;
                    case 'eleven':
                        result3[k][0] = '11ヶ月前';
                        break;
                    case 'year':
                        result3[k][0] = '1年前';
                        break;

                }            
        }
        console.log(result3);


        df.resolve();
        }).fail(function(){
        console.log("error");
        });
    });

        df.done(function(){
        var data = google.visualization.arrayToDataTable(result3);
//document.write(data);

        var chart = new google.charts.Line(document.getElementById('chart_div2'));

        chart.draw(data);

        });
        }


    </script> 
<div style="padding-top:20pt">
<h2>【グラフ2】</h2>
    <div id="chart_div2" style="width: 1200px; height: 500px;"></div>
</div><!--padding 20pt -->
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Lhankor_Mhy

    2016/01/09 13:34

    ローカルでやってみたところ動作したので、タイミングによって変わるかもしれませんね。'success' は2回表示されてましたか? 現段階で怪しいと思っているのは、$(function(){})です。

    キャンセル

  • Satochan24

    2016/01/12 13:45

    返信遅くなりました。
    successは2回表示されてます。そうですね。やはりDefferedの処理あたりが怪しいと思っています。

    キャンセル

回答 5

0

drawChartという関数名が重複しているのが原因だと思います。

追記:
すみません、ご質問をよく読んでいませんでした。
それだとだめなんですよね・・・

しかし、最低でも関数名は重複しないようにする必要はあると思います。

追記2:
参考コード(コピペしてhtmlファイルに貼り付けるだけで確認できるはずです。)

<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['corechart']});
      google.charts.setOnLoadCallback(drawChart);

      <!-- 追記1 ここから-->
      google.charts.setOnLoadCallback(drawChart2);
      <!-- 追記1 ここまで-->


      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Year', 'Sales', 'Expenses'],
          ['2004',  1000,      400],
          ['2005',  1170,      460],
          ['2006',  660,       1120],
          ['2007',  1030,      540]
        ]);

        var options = {
          title: 'Company Performance',
          curveType: 'function',
          legend: { position: 'bottom' }
        };

        var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));

        chart.draw(data, options);
      }

      <!-- 追記2 ここから-->
      function drawChart2() {
        var data = google.visualization.arrayToDataTable([
          ['Year', 'Sales', 'Expenses'],
          ['2004',  1000,      400],
          ['2005',  1170,      460],
          ['2006',  660,       1120],
          ['2007',  1030,      540]
        ]);

        var options = {
          title: 'Company Performance',
          curveType: 'function',
          legend: { position: 'bottom' }
        };

        <!-- 編集1 ここから-->
        var chart = new google.visualization.LineChart(document.getElementById('curve_chart2'));
        <!-- 編集2 ここまで-->

        chart.draw(data, options);
      }
      <!-- 追記2 ここまで-->

    </script>

  </head>
  <body>
    <div id="curve_chart" style="width: 900px; height: 500px"></div>

    <!-- 追記3 ここから-->
    <div id="curve_chart2" style="width: 900px; height: 500px"></div>
    <!-- 追記3 ここまで-->


  </body>
</html>

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/09 08:18

    回答有難うございます。
    一度、関数名を全く別な名前に変えたら、一度だけ両方のグラフが表示されましたが、その後また、どちらか一方になってしまいました。
    キャシュの影響でしょうか?
    また、Defferd?の影響はないですしょうか?

    キャンセル

  • 2016/01/09 17:53

    ご提示頂いたコードを精査する前に、私もちょっと試してみました。
    Google Developersのコードのうち、drawChart()をコピーしてdrawChart2()を増やしてみたところ、表示されました。
    https://developers.google.com/chart/interactive/docs/gallery/linechart

    上記回答欄を編集という形でコードを載せますので、htmlファイルにそのままコピペして試してみてください。

    もしかしたら、このコードを基に改良していった方が早いかもしれません。
    きちんとした回答になっていなくてすみません。

    キャンセル

  • 2016/01/12 13:27

    コメント遅くなりました。
    試すのはいいのですが、Defferedを使わないとファイルから読み込んだJSONデータを格納した変数の取得でうまくいかないのではないかと思っていましたが…
    ファイルから読み込む形でも試されましたでしょうか?

    キャンセル

0

<!DOCTYPE HTML>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <meta name="robots" content="NOINDEX,NOFOLLOW" />
        <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport' />
        <link rel="icon" href="favicon.ico" />
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
        <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" />
        <title>サンプル</title>
        <style type="text/css">
            .graph {
                min-height: 300px;
                border: 1px solid #333;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-6 graph" data-type="bar" id="bar">

                </div>
                <div class="col-md-6 graph" data-type="line" id="line">

                </div>
            </div>
        </div>
        <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" type="text/javascript"></script>
        <script src="https://www.google.com/jsapi"></script>
        <script type="text/javascript">
            var callback = function () {
                var data = google.visualization.arrayToDataTable([
                    ['', '小学生', '中1生', '中2生', '中3生', '高校生'],
                    ['2015/04', 0, 6, 10, 18, 3],
                    ['2015/05', 0, 6, 10, 18, 3],
                    ['2015/06', 0, 6, 12, 20, 3],
                    ['2015/07', 0, 7, 12, 20, 3],
                    ['2015/08', 0, 7, 16, 20, 3],
                    ['2015/09', 0, 10, 16, 24, 5],
                    ['2015/10', 0, 10, 16, 24, 5],
                    ['2015/11', 0, 10, 16, 24, 5],
                    ['2015/12', 0, 10, 16, 24, 5],
                    ['2016/01', 3, 12, 18, 24, 5],
                    ['2016/02', 3, 12, 18, 24, 5],
                    ['2016/03', 3, 12, 18, 24, 5]
                ]);
                var options = {
                    title: '受講者内訳',
                    height: 300,
                    bar: {
                        groupWidth: '90%'
                    },
                    isStacked: true
                };
                var dom = document.getElementById('bar');
                var chart = new google.visualization.BarChart(dom);
                chart.draw(data, options);
            };

            var callback2 = function () {
                var data = google.visualization.arrayToDataTable([
                    ['', '小学生', '中1生', '中2生', '中3生', '高校生'],
                    ['2015/04', 0, 6, 10, 18, 3],
                    ['2015/05', 0, 6, 10, 18, 3],
                    ['2015/06', 0, 6, 12, 20, 3],
                    ['2015/07', 0, 7, 12, 20, 3],
                    ['2015/08', 0, 7, 16, 20, 3],
                    ['2015/09', 0, 10, 16, 24, 5],
                    ['2015/10', 0, 10, 16, 24, 5],
                    ['2015/11', 0, 10, 16, 24, 5],
                    ['2015/12', 0, 10, 16, 24, 5],
                    ['2016/01', 3, 12, 18, 24, 5],
                    ['2016/02', 3, 12, 18, 24, 5],
                    ['2016/03', 3, 12, 18, 24, 5]
                ]);
                var options = {
                    title: '受講者内訳',
                    height: 300,
                    isStacked: true
                };
                var dom = document.getElementById('line');
                var chart = new google.visualization.LineChart(dom);
                chart.draw(data, options);
            };

            google.load("visualization", "1", {
                packages: ["corechart", "linechart"]
            });
            google.setOnLoadCallback(callback);
            google.setOnLoadCallback(callback2);
        </script>
    </body>
</html>

イメージ説明


Chrome での実行結果↓

イメージ説明

https://developers.google.com/chart/interactive/docs/gallery/linechart

イメージ説明


<!DOCTYPE HTML>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <meta name="robots" content="NOINDEX,NOFOLLOW" />
        <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport' />
        <link rel="icon" href="favicon.ico" />
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
        <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" />
        <title>サンプル</title>
        <style type="text/css">
            .graph {
                min-height: 300px;
                border: 1px solid #333;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-6 graph" data-type="bar" id="bar">

                </div>
                <div class="col-md-6 graph" data-type="line" id="line">

                </div>
            </div>
        </div>
        <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" type="text/javascript"></script>
        <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
        <script type="text/javascript">
            function drawChart() {
                $.getJSON('data.php', {type: 0}, function (json) {
                    var data = new google.visualization.arrayToDataTable(json);
                    var options = {
                        chart: {
                            title: 'Box Office Earnings in First Two Weeks of Opening',
                            subtitle: 'in millions of dollars (USD)'
                        },
                        axes: {
                            x: {
                                0: {side: 'bottom'}
                            }
                        }
                    };
                    var chart = new google.charts.Line(document.getElementById('bar'));
                    chart.draw(data, options);
                });
            }
            function drawChart2() {
                $.getJSON('data.php', {type: 1}, function (json) {
                    var data = new google.visualization.arrayToDataTable(json);
                    var options = {
                        chart: {
                            title: 'Box Office Earnings in First Two Weeks of Opening'
                        },
                        axes: {
                            x: {
                                0: {side: 'top'}
                            }
                        }
                    };
                    var chart = new google.charts.Line(document.getElementById('line'));
                    chart.draw(data, options);
                });
            }
            google.charts.load('current', {'packages': ['line']});
            google.charts.setOnLoadCallback(drawChart);
            google.charts.setOnLoadCallback(drawChart2);
        </script>
    </body>
</html>

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/20 20:02

    > google.load("visualization", "1.1", {packages:["line"]});
    どうも、line の時の記述にしたがってないだけですね。

    こちらの手元では、問題なく表示できました。

    キャンセル

  • 2016/01/21 17:55

    回答有難うございます。
    そうなんですね!
    1.1の形式でも表示できるんですね。
    オプション設定は確かにありますが、なかなか調整しづらいために
    デフォルトで見栄えのいい、1.1を選んでいました。
    まだまだJavaScriptが未熟の自分にとっては、完全解決できない状況ですが、
    ある程度妥協して、この質問終わらせる予定です。

    キャンセル

  • 2016/01/29 19:15

    グラフ表示、だいたい完了しました。複数表示に失敗してたのは、Defferedを使った外部JSONファイルを使用したことが原因のようです。普通に同じPHPファイル内で変数から読み込んだ時は殆ど問題ありませんでした。

    キャンセル

check解決した方法

-1

いろいろ回答有難うございました。
結局、不要な行をうまくJavaScriptで消せなかったので、
配列のカウント数で場合分けし、それぞれのデータをPHPの変数を直接指定して、力技で記述しました。
こんな感じです。

また、グラフが複数表示できない原因も、外部ファイル経由だとサーバの制限によって起こる可能性がある可能性があるようです。変数から直接、グラフ用のデータを作ってやれば大抵は表示されるようです。

if(<?php print $count; ?> == 1){
    var house_data = [
          ['Year-Month', '<?php print $var_1['house_name'] . $var_1['house_name_sub']; ?>'],
          ['<?php print "今月"; ?>',<?php print $var_1[this]; ?>],
          ['<?php print "1ヶ月前"; ?>',<?php print $var_1[one]; ?>],
          ['<?php print "2ヶ月前"; ?>',<?php print $var_1[two]; ?>],
          ['<?php print "3ヶ月前"; ?>',<?php print $var_1[three]; ?>],
          ['<?php print "4ヶ月前"; ?>',<?php print $var_1[four]; ?>],
          ['<?php print "5ヶ月前"; ?>',<?php print $var_1[five]; ?>],
          ['<?php print "半年前"; ?>',<?php print $var_1[six]; ?>],
          ['<?php print "7ヶ月前"; ?>',<?php print $var_1[seven]; ?>],
          ['<?php print "8ヶ月前"; ?>',<?php print $var_1[eight]; ?>],
          ['<?php print "9ヶ月前"; ?>',<?php print $var_1[nine]; ?>],
          ['<?php print "10ヶ月前"; ?>',<?php print $var_1[ten]; ?>],
          ['<?php print "11ヶ月前"; ?>',<?php print $var_1[eleven]; ?>],
          ['<?php print "1年前"; ?>',<?php print $var_1[year]; ?>],
        ]        
} else if

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-1

いろいろ回答有難うございました。結局、データの回数で場合分けして、力技で解決させました。
こんな感じです。

if(<?php print $count; ?> == 1){
    var house_data = [
          ['Year-Month', '<?php print $var_1['house_name'] . $var_1['house_name_sub']; ?>'],
          ['<?php print "今月"; ?>',<?php print $var_1[this]; ?>],
          ['<?php print "1ヶ月前"; ?>',<?php print $var_1[one]; ?>],
          ['<?php print "2ヶ月前"; ?>',<?php print $var_1[two]; ?>],
          ['<?php print "3ヶ月前"; ?>',<?php print $var_1[three]; ?>],
          ['<?php print "4ヶ月前"; ?>',<?php print $var_1[four]; ?>],
          ['<?php print "5ヶ月前"; ?>',<?php print $var_1[five]; ?>],
          ['<?php print "半年前"; ?>',<?php print $var_1[six]; ?>],
          ['<?php print "7ヶ月前"; ?>',<?php print $var_1[seven]; ?>],
          ['<?php print "8ヶ月前"; ?>',<?php print $var_1[eight]; ?>],
          ['<?php print "9ヶ月前"; ?>',<?php print $var_1[nine]; ?>],
          ['<?php print "10ヶ月前"; ?>',<?php print $var_1[ten]; ?>],
          ['<?php print "11ヶ月前"; ?>',<?php print $var_1[eleven]; ?>],
          ['<?php print "1年前"; ?>',<?php print $var_1[year]; ?>],
        ]        
} else if

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-1

いろいろ回答有難うございました。
結局、データの回数で場合分けして、力技で処理しました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.21%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる