设置宽度和高度

时间:2016-06-03 18:15:43

标签: chart.js

我正在尝试Chart.js given in the docs的示例代码。

在画布元素上以400px / 400px内联指定宽度和高度。

但是在渲染图表时,它会被炸成整页宽度,并切断最右端。

See example

我应该如何/在哪里控制图表的宽度/高度?

This is some bogus text because SO prohibits linking to Codepen otherwise.

12 个答案:

答案 0 :(得分:50)

您可以覆盖画布样式宽度!important ...

canvas{

  width:1000px !important;
  height:600px !important;

}

在options ..

下指定responsive:true,属性
options: {
    responsive: true,
    maintainAspectRatio: false,
    scales: {
        yAxes: [{
            ticks: {
                beginAtZero:true
            }
        }]
    }
}

在添加的选项下更新:maintainAspectRatio: false,

link:http://codepen.io/theConstructor/pen/KMpqvo

答案 1 :(得分:20)

您也可以使用容器(根据官方文档http://www.chartjs.org/docs/latest/general/responsive.html#important-note

简单地包围图表
<div class="chart-container">
    <canvas id="myCanvas"></canvas>
</div>

CSS

.chart-container {
    width: 1000px;
    height:600px
}

和选项

responsive:true
maintainAspectRatio: false

答案 2 :(得分:8)

就我而言,在选项下传递responsive: false解决了问题。我不确定为什么每个人都在告诉你做相反的事情,特别是因为默认是真的。

答案 3 :(得分:3)

为我工作

responsive:true
maintainAspectRatio: false

谢谢

答案 4 :(得分:2)

我不敢相信没有人谈论使用相对父元素。

代码:

<div class="chart-container" style="position: relative; height:40vh; width:80vw">
  <canvas id="chart"></canvas>
</div>

来源:Official documentation

答案 5 :(得分:1)

也为我工作

responsive:true
maintainAspectRatio: false


<div class="row">
        <div class="col-xs-12">
            <canvas id="mycanvas" width="500" height="300"></canvas>
        </div>
    </div>

谢谢

答案 6 :(得分:0)

上面没有提到,但是也可以在canvas元素上使用max-widthmax-height

答案 7 :(得分:0)

以下内容对我有用-但请不要忘记将其放在“选项”参数中。

var myChart = new Chart(ctx, {
type: 'line',
data: data,
options: {
    maintainAspectRatio: false,
    responsive:true,
    scales: {
        yAxes: [{
            ticks: {
                beginAtZero: true
            }
        }]
    }
}
});

答案 8 :(得分:0)

这对我来说很有帮助:

for(i in 1:4){
  tree=rpart(student.por$romantic[-Groups[,i]]~., data=predictorDat1[-Groups[,i],],control=rpart.control(cp=.001)) 
  predictions_per_fold=predict(tree,type="class",newdata=predictorDat1[Groups[,i],]) ## 
  predictions=c(predictions,as.character(predictions_per_fold))
}

答案 9 :(得分:0)

您可以根据需要更改library(devtools) install_github("andrew-hipp/RADami")

aspectRatio

答案 10 :(得分:-1)

可以创建一个div来包裹canvas标签,

    <div class="wrap">
     <canvas id="myChart"></canvas>
    </div>

    .grafico{
      width: 400px !important;
    }

js 图表选项的任何变化

var myChart = new Chart(ctx, {
    type: 'bar', //doughnut, bar, line, radar, pie, polarArea
    data: data,
    options: {

      scales: {
        y: {
          beginAtZero: true,
          stepSize: 1
        }

      }
    },
  });
};

答案 11 :(得分:-2)

使用它,它工作正常。

<canvas id="totalschart" style="height:400px;width: content-box;"></canvas>

并在options下,

responsive:true,