teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ソース追加

2021/04/15 01:42

投稿

tanakamaro
tanakamaro

スコア13

title CHANGED
File without changes
body CHANGED
@@ -7,8 +7,179 @@
7
7
  One or more participants failed to draw()
8
8
  ```
9
9
 
10
+ ```html
11
+ <!doctype html>
12
+ <html>
13
+ <head>
14
+ <meta charset="utf-8" content="">
15
+ <title>google-chart</title>
16
+
17
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript" ></script>
18
+ <script type="text/javascript" src="https://www.google.com/jsapi"></script>
19
+ <script src="../jRange/jquery.range.js"></script>
20
+ <link rel="stylesheet" href="../jRange/jquery.range.css">
21
+ <!-- スクリプト部分 -->
22
+ <script type="text/javascript" src="../js/graph.js"></script>
23
+
24
+ </head>
25
+
26
+ <!-- HTML部分 -->
27
+ <body>
28
+
29
+ <h1></h1>
30
+ </div>
31
+ <div id="dashboard_div" style="text-align: center;">
32
+ <!--Divs that will hold each control and chart-->
33
+ <div id="chart_div"></div>
34
+ <table width=800px style="display: none;">
35
+ <tr>
36
+ <td width="50%" align="center">
37
+ <span style="position: relative; top: 8px;">範囲</span>
38
+ <div style="margin-top: 10px;" id="filter_div"></div>
39
+ <!-- <span style="color: white;">0</span> -->
40
+ </td>
41
+ <td width="50%" align="center">幅:
42
+ <span id="bucketSize" style="color:#999; font-size: 15px; text-decoration: none;"></span>
43
+ <input id="bucketSlider" type="hidden" class="bucketSlider" value="0" onchange="changeOptions();"
44
+ style="margin-top: 0px;" />
45
+ </td>
46
+
47
+ </tr>
48
+ </table>
49
+ </div>
50
+ <script>
51
+ $('.bucketSlider').jRange({
52
+ from: 0,
53
+ to: 500,
54
+ showLabels: false,
55
+ snap: true
56
+ });
10
57
 
58
+ $(function () {
59
+ // 初期
60
+ $('#bucketSize').html($('#bucketSlider').val());
61
+ $('#bucketSlider').on('input change', function() {
62
+ // 変動
63
+ $('#bucketSize').html($(this).val());
64
+ });
65
+ });
66
+ </script>
67
+ </div>
68
+ </body>
69
+ </html>
11
70
 
71
+ ```
72
+
73
+ ```js
74
+ // Load the Visualization API and the controls package.
75
+ google.charts.load('current', { 'packages': ['corechart', 'controls','bar'] });
76
+ google.setOnLoadCallback(getJson);
77
+ let chart;
78
+ let thres;
79
+ let scale;
80
+ let dataArray = [['','ダミー']];
81
+
82
+
83
+ //チャート表示処理
84
+ function drawChart(thres){
85
+ let chartdata = google.visualization.arrayToDataTable(dataArray);
86
+ $('table').hide();
87
+ // ヒストグラムの場合
88
+ if(thres == 1){
89
+ $('table').show();
90
+ // Create a dashboard.
91
+ let dashboard = new google.visualization.Dashboard(
92
+ document.getElementById('dashboard_div'));
93
+
94
+ // Create a range slider, passing some options
95
+ let donutRangeSlider = new google.visualization.ControlWrapper({
96
+ 'controlType': 'NumberRangeFilter',
97
+ 'containerId': 'filter_div',
98
+ 'options': {
99
+ 'filterColumnLabel': 'ダミー'
100
+ }
101
+ });
102
+
103
+ // Create a pie chart, passing some options
104
+ let Histogram= new google.visualization.ChartWrapper({
105
+ 'chartType': 'Histogram',
106
+ 'containerId': 'chart_div',
107
+ 'options': {
108
+ 'width': 900,
109
+ 'height': 600,
110
+ 'pieSliceText': 'value',
111
+ 'legend': 'right',
112
+ 'histogram': {
113
+ hideBucketItems: true,
114
+ bucketSize: 10
115
+ },
116
+ 'bar': { groupWidth: "100%" },
117
+ 'colors': ['gray']
118
+ },
119
+
120
+ });
121
+ dashboard.bind(donutRangeSlider, Histogram);
122
+
123
+ dashboard.draw(dataArray);
124
+ changeOptions = function () {
125
+ Histogram.setOption('histogram.bucketSize', document.getElementById('bucketSlider').value);
126
+ console.log(document.getElementById('bucketSlider').value);
127
+ dashboard.draw(dataArray);
128
+ };
129
+ 棒グラフの場合
130
+ }else if(thres == 2){
131
+ let options = {
132
+ title: '',
133
+ hAxis: {
134
+ format: '',
135
+ },
136
+ bars: 'horizontal'
137
+ };
138
+ let chart = new google.charts.Bar(document.getElementById('chart_div'));
139
+ chart.draw(chartdata, google.charts.Bar.convertOptions(options));
140
+ //円グラフの場合
141
+ }else if(thres == 4){
142
+ let options = {
143
+ //title: '妊婦登録時 妊娠分娩歴3 産科合併症の有無(全員)',
144
+ pieSliceText: 'none',
145
+ //colors: ['#3265a8', '#bddeff']
146
+ };
147
+ let chart = new google.visualization.PieChart(document.getElementById('chart_div'));
148
+ chart.draw(chartdata, options);
149
+
150
+ }
151
+ dataArray = [['','ダミー']];
152
+ }
153
+ //Json取得処理
154
+ function getJson(){
155
+ $('#search').click(function() {
156
+ let hostUrl = "http://localhost:3000/result/" + $('#zip').val();
157
+ $.ajax({
158
+ type: 'get',
159
+ url: hostUrl,
160
+ dataType : 'json'
161
+ }).done(function(data){
162
+ console.log("success");
163
+ //Jsonデータのbreaks,countをGoogleChartのデータ配列に格納
164
+ let data_item = data.count.map((c, i) => {
165
+ return [data.breaks[i].toString(), c];
166
+ });
167
+ dataArray.push(...data_item);
168
+ console.log(dataArray);
169
+ thres = data.thres;
170
+
171
+ drawChart(data.thres);
172
+ }).fail(function(){
173
+ alert('データが無いです');
174
+ $('#zip').val("");
175
+ });
176
+
177
+
178
+ });
179
+ }
180
+
181
+ ```
182
+
12
183
  ### 試したこと
13
184
 
14
185
  ここに問題に対して試したことを記載してください。