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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google Charts

Google Chartsは、円グラフ・棒グラフ・折れ線グラフなどのさまざまなグラフをJavaScriptで容易に表示できる無料のライブラリ。デザインやイベント処理といったカスタマイズができ、商用利用も可能です。

Chart.js

Chart.jsは、多様なグラフを組み込めるJavaScriptのライブラリ。折れ線グラフや棒グラフ、円グラフ、レーダーチャートなどのグラフの種類が用意されています。HTML5のCanvasを用いて描画され、マークアップも分かりやすく、簡単に編集することが可能です。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

0回答

1611閲覧

行ごとにグラフ(google chart もしくはchart.js等)を表示させたい

rinkoro

総合スコア23

Google Charts

Google Chartsは、円グラフ・棒グラフ・折れ線グラフなどのさまざまなグラフをJavaScriptで容易に表示できる無料のライブラリ。デザインやイベント処理といったカスタマイズができ、商用利用も可能です。

Chart.js

Chart.jsは、多様なグラフを組み込めるJavaScriptのライブラリ。折れ線グラフや棒グラフ、円グラフ、レーダーチャートなどのグラフの種類が用意されています。HTML5のCanvasを用いて描画され、マークアップも分かりやすく、簡単に編集することが可能です。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/12/22 04:46

編集2020/12/22 04:47

やりたいこと

今1ページの中で、
ループを使って行ごとにグラフを表示させたいと思っています。

↓イメージ
イメージ説明

・行を作成するうえでのデータはデータベースからとってきます

やってみたこと

あっているかどうかは別として、イメージとしてはこんな感じです(グラフはgoogle chartを利用)

@foreach ($titles as $title) {{$title->title_name}} <?php $getData = App\Graph::getNumber($title->id)?> <div id="graph_bar" ></div> ←グラフ出したい @endforeach <script type="text/javascript"> var barA= @json($getData->numberA); var barB = @json($getData->numberB); var barC= @json($getData->numberC); google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawchart); function drawchart() { var data = google.visualization.arrayToDataTable([ ['', '', '', ''], ['', barA, barB , barC], ]); var options = { isStacked: true, isStacked:'percent', legend: {position: 'none'}, series: { 0:{color:'red'}, 1:{color:'blue'}, 2:{color:'grey'}, } }; var chart = new google.visualization.BarChart(document.getElementById('graph_bar')); chart.draw(data, options); } $(window).resize(function(){ drawchart(); }); </script>

以上のようにやってみましたが、
複数行すべてグラフが表示されません。

知りたいこと

そもそもループの中でグラフを表示させることは可能なのでしょうか?
また可能な場合、どのようにしたらよいのでしょうか。。?
ご教示宜しくお願いいたします。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2020/12/22 05:27

PHPはよくわからないので、回答欄ではなくてこちらで。 id属性は一意的ですので、かぶってはいけません。 https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/id ですので、foreachの中で <div id="graph_bar" ></div> を回してはいけないと思いますし、 new google.visualization.BarChart(document.getElementById('graph_bar')); は、全て同じ要素を一つだけ返すと思います。
rinkoro

2020/12/22 09:51

すみません。グラフのID名をHTMLから取得してという工程がをかいてなかったです。 ご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問