当前位置: 首页 > 知识库问答 >
问题:

在chart.js中设置图表高度

温亮
2023-03-14

我想用chart.js绘制一个水平条形图,但它一直在缩放图表,而不是使用我在脚本中为画布分配的高度。

有没有办法从脚本中设置图形的高度?

参见fiddle:Jsfidle

HTML

<div class="graph">
  <div class="chart-legend">

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

JavaScript

var ctx = $('#myChart');

ctx.height(500);

var myChart = new Chart(ctx, {
    type: 'horizontalBar',
    data: {
        labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
        datasets: [{
            label: '# of Votes',
            data: [12, 19, 3, 5, 2, 3],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
    maintainAspectRatio: false,
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true
                }
            }]
        }
    }
});

共有2个答案

秦才
2023-03-14

如果在选项中禁用“保持纵横比”,则它将使用可用高度:

var chart = new Chart('blabla', {
                type: 'bar',
                data: {
                },
                options: {
                    maintainAspectRatio: false,
                }
            });
顾涵衍
2023-03-14

似乎var ctx=$('#MyChart');返回的是元素列表。您需要使用ctx[0]引用第一个。而且高度是一个属性,而不是一个函数。

我在代码中是这样做的:

var ctx = document.getElementById("myChart");
ctx.height = 500;
 类似资料:
  • 问题内容: 为什么此工作台高度不起作用? 问题答案: 只需将以下内容添加到您的CSS中: 就像其他人所说的,a 没有-attriute,但是大多数浏览器都会反其道而行之。您可以在jsfiddle上看到结果。 您需要执行此操作的原因是,任何应具有%的高度的父元素也必须具有一个高度(如Shadow Wizard所说:“究竟是什么的30%?”-父元素必须具有一个高度)。

  • 问题内容: 呈现HTML SELECT时,IE似乎忽略了CSS中设置的高度。是否有任何解决方法,还是我们必须接受IE不会像其他浏览器那样好? 问题答案: 除了放弃元素之外,没有其他解决方法。

  • 问题内容: 在PhantomJS中进行测试时如何设置元素高度? 我正在使用Jasmine框架在Karma上进行测试,并在PhantomJS无头浏览器上运行。我正在尝试测试与“无限滚动”(当用户滚动到容器元素底部附近时自动加载项目)有关的AngularJS指令。我 不 使用jQuery,也不希望(除非没有其他方法)。我正在使用 .clientHeight , .scrollTop 和 .scroll

  • 我在UIViewController的视图中有一个。我想要的是将它的高度设置为视图的三分之一,无论屏幕大小如何。我当然知道如何从代码中做到这一点。但是,如何仅使用情节提要/界面构建器来实现这一点呢?

  • 使用Chart.js2.0。我正在寻找一种在图表底部添加页脚(一行文本)的方法,以便显示数据源。 我尝试通过option对象来解决它,就像title和legend被包括和修改一样。像这样: 我在文档中几次提到了“footer”,以及样式化它或在“工具提示”上下文中使用它的方法,但还没有看到如何具体添加它。 编辑/更新:我找到了两种方法(但没有完美的解决方案)来在图表中添加页脚,同时尝试解决这个问题

  • 我正在 中使用 现在我遇到了表视图单元格高度的问题。我正在聊天屏幕上工作,所以我有文字,图像。所以我在管理屏幕的其中取了一个原型单元。现在下面是我的身高代码 因此,文本单元格没有得到我所期望的,但我不知道我的错误在哪里,还有一件事,如果我< code > returnuitableviewautomaticdimension ,它的工作很好的文本信息,而不是图像。请帮助我,先谢了。