我的饼图(chartJs)没有出现

Posted

技术标签:

【中文标题】我的饼图(chartJs)没有出现【英文标题】:My pie chart (chartJs) does not appear 【发布时间】:2017-01-07 22:39:04 【问题描述】:

我对图表 js 有一个小问题

我想画一个饼图,但是当我引用它时页面仍然是空的

我的代码如下,我对script标签的在线src有疑问:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>C.H.A.R.T.JS</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.2/Chart.min.js"></script>
</head>

<body>
<canvas id="myChart"  ></canvas>
<script>
$(function()

//$('body').css('background':'red');
var ctx = $("#myChart").get(0).getContext("2d");

var data = [
				
					value :270,
					color :'Dodgerblue',
					heightLight: 'Lightskyblue',
					label :'Imed1'
				,
				
					value :50,
					color :'Red',
					heightLight: 'Lightskyblue',
					label :'Imed2'
				,
				
					value :40,
					color :'yellow',
					heightLight: 'Lightskyblue',
					label :'Imed3'
				
		  ];
var pieChart = new Chart(ctx).Pie(data);
); // fin jQuery


</script>

</body>
</html>

提前谢谢你

【问题讨论】:

【参考方案1】:

我认为你的数据结构是使用chartJS1,但你的CDN是chartJS2。 这就是为什么您只收到错误消息的原因。

var ctx = $("#myChart").get(0).getContext("2d");

var data = 
    labels: [
        "Red",
        "Blue",
        "Yellow"
    ],
    datasets: [
        
            data: [300, 50, 100],
            backgroundColor: [
                "#FF6384",
                "#4BC0C0",
                "#FFCE56"
            ],
            label: 'My dataset'
        ]
;
var myPieChart = new Chart(ctx,
    type: 'pie',
    data: data,
);

【讨论】:

但是我怎样才能让它变小呢?它太大了...... CSS? @user5080818 您可以使用options: responsive: false 控制它是否响应。你可以像这样data: data, options: responsive: false 传递它。默认情况下它是响应式的,填充它的父容器。您可以设置具有最大宽度或预定义宽度/高度的父容器。或者你可以做类似#myChart max-width: 400px; 的事情。使用 max-width 如果父容器变小,它将保持响应。【参考方案2】:

尝试使用文档中显示的这种结构创建图表。

根据文档,您的结构看起来有点偏离。 http://www.chartjs.org/docs/#doughnut-pie-chart

var ctx = document.getElementById("myChart").getContext("2d");

// For a pie chart
var myPieChart = new Chart(ctx,
    type: 'pie',
    data: data,
    options: options
);`

var data = 
    labels: [
        "Red",
        "Blue",
        "Yellow"
    ],
    datasets: [
        
            data: [300, 50, 100],
            backgroundColor: [
                "#FF6384",
                "#36A2EB",
                "#FFCE56"
            ],
            hoverBackgroundColor: [
                "#FF6384",
                "#36A2EB",
                "#FFCE56"
            ]
        ]
;

默认情况下它是响应式的,会扩展到它的父容器。您可以设置父容器最大宽度或画布本身,这将使其对较小的屏幕保持响应。

<style type="text/css">
    #myChart 
        max-width: 400;
    
</style>

或者,如果您根本不希望它响应,您可以将该选项设置为 false。

options: responsive: false

【讨论】:

感谢您的回答,我会按照您的链接...谢谢 再次感谢...对于 css,我必须将 px 添加到 400 才能使其正常工作,但我更喜欢这个:选项:responsive: false

以上是关于我的饼图(chartJs)没有出现的主要内容,如果未能解决你的问题,请参考以下文章

使用 Chart js 的饼图图例样式

chartjs 饼图图例的每个标签都在一个新行上

如何在chart.js中的饼图上方显示标签

将chartjs的php sql值检索到jquery/ajax中

如何修复 ChartJS 图例不起作用的问题

Chartjs 没有在我的 Django 项目中显示图表