Javascript 谷歌图表:如何自动重新调整面板内部的大小?

Javascript 谷歌图表:如何自动重新调整面板内部的大小?,javascript,google-visualization,Javascript,Google Visualization,我正在使用谷歌图表,并将它们放在引导面板中。当面板调整大小时,如何使图表重新调整大小?有时它们在特定分辨率下看起来不错,有时显示被切断 当我放大时获取截断: 我的cshtml: <div class="col-lg-12"> <div class="col-md-4 col-sm-4"> <div class="panel panel-default"> <div class="panel-headin

我正在使用谷歌图表,并将它们放在引导面板中。当面板调整大小时,如何使图表重新调整大小?有时它们在特定分辨率下看起来不错,有时显示被切断

当我放大时获取截断:

我的cshtml:

<div class="col-lg-12">
    <div class="col-md-4 col-sm-4">
        <div class="panel panel-default">
            <div class="panel-heading" style="font-weight:900">CHART #1
            </div>
            <div class="panel-body">
                <div id="stakeholder-chart"></div>
            </div>
        </div>
    </div>
</div>

尝试将chartArea选项添加到JS选项中,例如:

chartArea: {
            left: 0,
            top: 0,
            width: '100%',
            height: '100%',
        },

或者,如果你使用了一些填充,只需减少一点。

我们自己在四处寻找解决方案,并找到了。我可以把他的密码笔复制成一个答案,但你应该亲自去看,他的功劳归他所有

它不是Bootstrap(或BS-Panel)专用的,但它对浏览器宽度有响应

HTML:

以及他的JavaScript图表:

google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart1);
function drawChart1() {
  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',
    hAxis: {title: 'Year', titleTextStyle: {color: 'red'}}
 };

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div1'));
  chart.draw(data, options);
}

google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart2);
function drawChart2() {
  var data = google.visualization.arrayToDataTable([
    ['Year', 'Sales', 'Expenses'],
    ['2013',  1000,      400],
    ['2014',  1170,      460],
    ['2015',  660,       1120],
    ['2016',  1030,      540]
  ]);

  var options = {
    title: 'Company Performance',
    hAxis: {title: 'Year',  titleTextStyle: {color: '#333'}},
    vAxis: {minValue: 0}
  };

  var chart = new google.visualization.AreaChart(document.getElementById('chart_div2'));
  chart.draw(data, options);
}

$(window).resize(function(){
  drawChart1();
  drawChart2();
});

// Reminder: you need to put https://www.google.com/jsapi in the head of your document or as an external resource on codepen //
<div class="grid">
  <div class="col-1-2">
    <div id="chart_div1" class="chart"></div>
  </div>
  <div class="col-1-2">
    <div id="chart_div2" class="chart"></div>
  </div>
</div>
* {
  @include box-sizing(border-box);
}

$pad: 20px;

.grid {
  background: white;
  margin: 0 0 $pad 0;

  &:after {
    /* Or @extend clearfix */
    content: "";
    display: table;
    clear: both;
  }
}

[class*='col-'] {
  float: left;
  padding-right: $pad;
  .grid &:last-of-type {
    padding-right: 0;
  }
}
.col-2-3 {
  width: 66.66%;
}
.col-1-3 {
  width: 33.33%;
}
.col-1-2 {
  width: 50%;
}
.col-1-4 {
  width: 25%;
}
.col-1-8 {
  width: 12.5%;
}

/* Opt-in outside padding */
.grid-pad {
  padding: $pad 0 $pad $pad;
  [class*='col-']:last-of-type {
    padding-right: $pad;
  }
}
.chart {
  width: 100%; 
  height: 600px;
}
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart1);
function drawChart1() {
  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',
    hAxis: {title: 'Year', titleTextStyle: {color: 'red'}}
 };

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div1'));
  chart.draw(data, options);
}

google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart2);
function drawChart2() {
  var data = google.visualization.arrayToDataTable([
    ['Year', 'Sales', 'Expenses'],
    ['2013',  1000,      400],
    ['2014',  1170,      460],
    ['2015',  660,       1120],
    ['2016',  1030,      540]
  ]);

  var options = {
    title: 'Company Performance',
    hAxis: {title: 'Year',  titleTextStyle: {color: '#333'}},
    vAxis: {minValue: 0}
  };

  var chart = new google.visualization.AreaChart(document.getElementById('chart_div2'));
  chart.draw(data, options);
}

$(window).resize(function(){
  drawChart1();
  drawChart2();
});

// Reminder: you need to put https://www.google.com/jsapi in the head of your document or as an external resource on codepen //