chart.js的图表使用与配置

export let barChartOptions = {
    ...basicOptions,
    tooltips: {
        backgroundColor: '#f5f5f5',
        titleFontColor: '#333',
        bodyFontColor: '#666',
        bodySpacing: 4,
        xPadding: 12,
        mode: 'nearest',
        intersect: 0,
        position: 'nearest'
    },
    legend: {
        display: false
    },
    scales: {
        yAxes: [
            {
                gridLines: {
                    drawBorder: false,
                    color: 'rgba(29,140,248,0.1)',
                    zeroLineColor: 'transparent'
                },
                ticks: {
                    suggestedMin: 0,
                    suggestedMax: 120,
                    stepSize: 50,  //配置Y轴的刻度最小值 
                    maxTicksLimit: 6, 

                    padding: 20,
                    fontColor: '#9e9e9e'
                }
            }
        ],
        xAxes: [
            {
                gridLines: {
                    drawBorder: false,
                    color: 'rgba(29,140,248,0.1)',
                    zeroLineColor: 'transparent'
                },
                ticks: {
                    padding: 20,
                    fontColor: '#9e9e9e'
                }
            }
        ]
    }
};
export let pieChartOptions = {
    ...basicOptions,
    tooltips: {              //滑过的显示数据
        backgroundColor: '#f5f5f5',
        titleFontColor: '#333',
        bodyFontColor: '#666',
        bodySpacing: 4,
        xPadding: 12,
        mode: 'nearest',
        intersect: 0,
        position: 'nearest'
    },

    legend: {
        display: true,
        position: 'left', //配置lables的位置 
        labels: {
            fontColor: 'rgb(189, 184, 184)'
        }
    },

    scales: {} //刻度
};

 这里是组件封装引用

export let pieChartOptions = {
    ...basicOptions,
    tooltips: {
        backgroundColor: '#f5f5f5',
        titleFontColor: '#333',
        bodyFontColor: '#666',
        bodySpacing: 4,
        xPadding: 12,
        mode: 'nearest',
        intersect: 0,
        position: 'nearest'
    },

    legend: {  //labels的位置以及颜色
        display: true,
        position: 'left',
        labels: {
            fontColor: 'rgb(189, 184, 184)'
        }
    },

    scales: {} //刻度
};

引用组件在文件后的使用方式

   let chartData = {
                        labels: pieShowLabel,
                        datasets: [
                            {
                                borderColor: [
                                    'rgba(74,58,218,0.7)',
                                    'rgba(156,221,95,0.7)',
                                    'rgba(25,66,202,0.7)',
                                    'rgba(219,216,20,0.7)',
                                    'rgba(194,41,66,0.7)',
                                    'rgba(226,131,212,0.7)'
                                ],
                                fill: true,
                                backgroundColor: [
                                    'rgba(74,58,218,0.7)',
                                    'rgba(156,221,95,0.7)',
                                    'rgba(25,66,202,0.7)',
                                    'rgba(219,216,20,0.7)',
                                    'rgba(194,41,66,0.7)',
                                    'rgba(226,131,212,0.7)'
                                ],
                                data: pieShowData
                            }
                        ]
                    };
// this.$refs.pieChar.updateGradients(chartData);
 this.pieChart.chartData = chartData;

这里是直接在文件中使用

     const ctx = document.getElementById('myChart4');
            new Chart(ctx, {
                type: 'doughnut',
                data: {
                    labels: this.SecondyuanhuanData.labels,
                    datasets: [
                        {
                            label: 'My First Dataset',
                            data: this.SecondyuanhuanData.data,
                            borderColor: this.SecondyuanhuanData.backgroundColor,
                            backgroundColor: this.SecondyuanhuanData.backgroundColor,
                            hoverOffset: 4
                        }
                    ]
                },
                options: {   //写在options里面
                    legend: {
                        display: true,
                        // position: 'left',
                        labels: {
                            fontColor: 'rgb(189, 184, 184)' //改变图例颜色
                        }
                    },
                    scales: {
                        y: {
                            beginAtZero: true
                        }
                    }
                }
            });
        },

 labels

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您使用的是`html2canvas`库来转换包含`Chart.js`图表的HTML元素为图像,可能会出现该问题。这是因为`html2canvas`无法识别`canvas`元素中的图表数据。 为了解决这个问题,您可以使用`chartjs-node-canvas`库,它可以在后端使用`Node.js`生成`Chart.js`图表。这样您就可以将`Chart.js`图表作为图像导出。以下是一个简单的示例: ```javascript const {createCanvas} = require('canvas'); const Chart = require('chartjs-node-canvas'); // 创建canvas const canvas = createCanvas(400, 400); // 配置图表数据 const chartConfig = { type: 'bar', 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 }] }, options: { scales: { yAxes: [{ ticks: { beginAtZero: true } }] } } }; // 使用chartjs-node-canvas创建图表 const chart = new Chart(canvas, chartConfig); // 将canvas导出为图像 const image = chart.toBase64Image(); ``` 在上面的示例中,我们使用`chartjs-node-canvas`库创建了一个`Chart.js`图表,然后将其导出为图像。您可以将此代码嵌入到您的项目中,以便在后端生成`Chart.js`图表并将其导出为图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值