第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在谷歌圖表中嵌入儀表板

在谷歌圖表中嵌入儀表板

小唯快跑啊 2023-07-29 16:46:15
?我想要一個(gè)如下所示的表:.僅將折線圖替換為儀表板圖,如下所示:使用我的代碼運(yùn)行以下代碼片段以查看我得到的結(jié)果。? ? ? ? ? ? ? //draw players? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? function loadImage(path) {? ? ? ? ? ? ? ? ? ? ? ? let image = new Image();? ? ? ? ? ? ? ? ? ? ? ? let promise = new Promise((resolve, reject) => {? ? ? ? ? ? ? ? ? ? ? ? ? ? image.onload = () => resolve(image);? ? ? ? ? ? ? ? ? ? ? ? ? ? image.onerror = reject? ? ? ? ? ? ? ? ? ? ? ? });? ? ? ? ? ? ? ? ? ? ? ? image.src = path;? ? ? ? ? ? ? ? ? ? ? ? //Add the following line? ? ? ? ? ? ? ? ? ? ? ? ctx.drawImage(image,playerList[0].x,playerList[0].y);? ? ? ? ? ? ? ? ? ? ? ? return promise;? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? ? ? // change loadImage.src = 'trump.gif' into this? ? ? ? ? ? ? ? ? ? loadImage('trump.gif');我希望將儀表板插入到每一行中??赡苁鞘裁磫?wèn)題?
查看完整描述

2 回答

?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

儀表板僅出現(xiàn)在最后一行的原因是因?yàn)橹挥幸粋€(gè)儀表板元素。

當(dāng)它執(zhí)行循環(huán)時(shí),它將儀表板附加并移動(dòng)到每個(gè)單元格,

循環(huán)完成時(shí)最終到達(dá)最后一行。


我們不使用現(xiàn)有的儀表板元素,而是

動(dòng)態(tài)添加儀表板元素,每一行一個(gè)。


在這里,我們使用 html 模板來(lái)存儲(chǔ)儀表板內(nèi)容。


<!-- template: dashboard template -->

<script id="template-dashboard" type="text/html">

  <div id="dashboard-{{Id}}" style="border: 1px solid #ccc;">

    <table class="columns">

      <tr>

        <td>

          <div id="chart-{{Id}}"></div>

          <div id="control-{{Id}}" style="padding-left: 2em; min-width: 250px;"></div>

        </td>

      </tr>

    </table>

  </div>

</script>

然后將內(nèi)容添加到每個(gè)表格單元格,

使用行索引作為每個(gè)儀表板和控件的 ID。


// insert dashboard html

tableCell.insertAdjacentHTML('beforeEnd', renderTemplate('template-dashboard', {

  Id: rowIndex

}));

然后我們可以使用 id 引用新創(chuàng)建的元素...


// build dashboard

var dashboardContainer = tableCell.appendChild(document.getElementById('dashboard-' + rowIndex));

請(qǐng)參閱以下工作片段...


google.charts.load('current', {

  'packages': ['corechart', 'controls', 'table', 'charteditor']

});

google.charts.setOnLoadCallback(drawChart);


function drawChart() {


  var tableData = new google.visualization.DataTable();

  tableData.addColumn('string', 'Name');

  tableData.addColumn('number', 'Salary');

  tableData.addColumn('string', 'Chart');

  tableData.addColumn('string', 'Test');

  tableData.addRows([

    ['Mike', {

      v: 10000,

      f: '$10,000'

    }, null, '5thFirst'],

    ['Jim', {

      v: 8000,

      f: '$8,000'

    }, null, '5thSecond'],

    ['Alice', {

      v: 12500,

      f: '$12,500'

    }, null, '5thThird'],

    ['Bob', {

      v: 7000,

      f: '$7,000'

    }, null, '5thForth']

  ]);



  var table = new google.visualization.Table(document.getElementById('table_div'));


  google.visualization.events.addListener(table, 'ready', function() {

    // table body

    Array.prototype.forEach.call(table.getContainer().getElementsByTagName('tbody'), function(tableBody) {

      // table rows

      Array.prototype.forEach.call(tableBody.rows, function(tableRow, rowIndex) {

        // table cells

        Array.prototype.forEach.call(tableRow.cells, function(tableCell, cellIndex) {

          // determine cell

          if (cellIndex === (2)) {

            // insert dashboard html

            tableCell.insertAdjacentHTML('beforeEnd', renderTemplate('template-dashboard', {

              Id: rowIndex

            }));


            // build dashboard

            var dashboardContainer = tableCell.appendChild(document.getElementById('dashboard-' + rowIndex));


            var control = new google.visualization.ControlWrapper({

              'controlType': 'ChartRangeFilter',

              'containerId': 'control-' + rowIndex,

              'options': {

                'filterColumnIndex': 0,

                'ui': {

                  'chartOptions': {

                    'height': 50,

                    'chartArea': {

                      'width': '75%'

                    },

                    'series': {

                      0: {

                        'targetAxisIndex': 0

                      },

                      1: {

                        'targetAxisIndex': 1

                      }

                    },

                    'vAxes': {

                      0: {

                        'title': 'Weight'

                      },

                      1: {

                        'title': 'smA'

                      }

                    }

                  }

                }

              },

            });


            var chart = new google.visualization.ChartWrapper({

              'chartType': 'ComboChart',

              'containerId': 'chart-' + rowIndex,

              'options': {

                'legend': {

                  'position': 'bottom',

                  'alignment': 'center',

                  'textStyle': {

                    'fontSize': 12

                  }

                },

                'explorer': {

                  'actions': ['dragToZoom', 'rightClickToReset'],

                  'axis': 'horizontal',

                  'keepInBounds': true

                },

                'hAxis': {

                  'title': 'X'

                },

                'pointSize': 3,

                'series': {

                  0: {

                    'targetAxisIndex': 0

                  },

                  1: {

                    'targetAxisIndex': 1

                  }

                },

                'vAxes': {

                  0: {

                    'title': 'Weight'

                  },

                  1: {

                    'title': 'smA'

                  }

                }

              }

            });


            // build chart data table

            var chartData = new google.visualization.DataTable();

            chartData.addColumn('date', 'timestamp');

            chartData.addColumn('number', 'weight');

            chartData.addColumn('number', 'smA');

            chartData.addRow([new Date(2016, 0, 1), 1, 123]);

            chartData.addRow([new Date(2016, 1, 1), 6, 42]);

            chartData.addRow([new Date(2016, 2, 1), 4, 49]);

            chartData.addRow([new Date(2016, 3, 1), 23, 486]);

            chartData.addRow([new Date(2016, 4, 1), 89, 476]);

            chartData.addRow([new Date(2016, 5, 1), 46, 444]);


            var dashboard = new google.visualization.Dashboard(dashboardContainer);

            dashboard.bind(control, chart);

            dashboard.draw(chartData);

          }

        });

      });

    });

  });


  table.draw(tableData, {

    showRowNumber: false,

    width: '100%',

    height: '100%'

  });

}


// render html template

function renderTemplate(templateId, templateValues) {

  var templateText;   // html string to return

  var templateValue;  // html value


  // get template html

  templateText = document.getElementById(templateId).innerHTML;


  // replace place holders with values

  if (templateValues) {

    for (var propHandle in templateValues) {

      if (templateValues.hasOwnProperty(propHandle)) {

        templateValue = '';

        if (templateValues[propHandle] !== null) {

          templateValue = templateValues[propHandle].toString();

        }

        if (templateValue.indexOf('$') > -1) {

          templateValue = templateValue.replace(new RegExp('\\$', 'g'), '$$$');

        }

        if (templateText.indexOf('{{' + propHandle + '}}') > -1) {

          templateText = templateText.replace(new RegExp('{{' + propHandle + '}}', 'g'), templateValue);

        }

      }

    }

  }

  return templateText.trim();

}

html,

body {

  height: 100%;

  margin: 0px 0px 0px 0px;

  padding: 0px 0px 0px 0px;

}


.chart {

  width: 500px;

  height: 300px border: 1px solid black;

  min-height: 200px;

}


.beige-background {

  background-color: beige;

}

<html>

  <head>

    <script src="https://www.gstatic.com/charts/loader.js"></script>

  </head>

  <body>

    <div id="table_div"></div>


    <!-- template: dashboard template -->

    <script id="template-dashboard" type="text/html">

      <div id="dashboard-{{Id}}" style="border: 1px solid #ccc;">

        <table class="columns">

          <tr>

            <td>

              <div id="chart-{{Id}}"></div>

              <div id="control-{{Id}}" style="padding-left: 2em; min-width: 250px;"></div>

            </td>

          </tr>

        </table>

      </div>

    </script>

  </body>

</html>


查看完整回答
反對(duì) 回復(fù) 2023-07-29
?
30秒到達(dá)戰(zhàn)場(chǎng)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

我認(rèn)為您的問(wèn)題來(lái)自以下行:

var dashboardContainer = tableCell.appendChild(document.createElement('dashboard_div'));

“dashboard_div”是什么類型的元素?這將創(chuàng)建以下內(nèi)容:

<dashboard_div></dashboard_div>

我確信這不是您想要的,因?yàn)槟雽D表插入:

<div id="dashboard_div">

而且這兩件事并不相同。

您可以通過(guò)使用開發(fā)人員控制臺(tái)檢查 HTML 來(lái)查看圖表是否確實(shí)插入到正確的 HTML 標(biāo)記中來(lái)查看結(jié)果。

查看完整回答
反對(duì) 回復(fù) 2023-07-29
  • 2 回答
  • 0 關(guān)注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)