您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在React中的图表js-2中的甜甜圈图中添加文本

在React中的图表js-2中的甜甜圈图中添加文本

我的示例使用text数据上的属性指定内部文本:

const data = {
  labels: [...],
  datasets: [...],
  text: '23%'
};



import React from 'react';

import ReactDOM from 'react-dom';

import {Doughnut} from 'react-chartjs-2';



// some of this code is a variation on https://jsfiddle.net/cmyker/u6rr5moq/

var originalDoughnutDraw = Chart.controllers.doughnut.prototype.draw;

Chart.helpers.extend(Chart.controllers.doughnut.prototype, {

  draw: function() {

    originalDoughnutDraw.apply(this, arguments);



    var chart = this.chart.chart;

    var ctx = chart.ctx;

    var width = chart.width;

    var height = chart.height;



    var fontSize = (height / 114).toFixed(2);

    ctx.font = fontSize + "em Verdana";

    ctx.textBaseline = "middle";



    var text = chart.config.data.text,

        textX = Math.round((width - ctx.measureText(text).width) / 2),

        textY = height / 2;



    ctx.fillText(text, textX, textY);

  }

});



const data = {

    labels: [

        'Red',

        'Green',

        'Yellow'

    ],

    datasets: [{

        data: [300, 50, 100],

        backgroundColor: [

        '#FF6384',

        '#36A2EB',

        '#FFCE56'

        ],

        hoverBackgroundColor: [

        '#FF6384',

        '#36A2EB',

        '#FFCE56'

        ]

    }],

  text: '23%'

};



class DonutWithText extends React.Component {



  render() {

    return (

      <div>

        <h2>React Doughnut with Text Example</h2>

        <Doughnut data={data} />

      </div>

    );

  }

};



ReactDOM.render(

  <DonutWithText />,

  document.getElementById('root')

);


<script src="https://gor181.github.io/react-chartjs-2/common.js"></script>

<script src="https://gor181.github.io/react-chartjs-2/bundle.js"></script>



<div id="root">

</div>

由于一些奇怪的控制台错误,您必须向下滚动一点才能看到运行CodeSnippet的内容

尽管它在CodePen中正常工作,但我在哪里写的:http ://codepen.io/anon/pen/OpdBOq?editors=1010

其他 2022/1/1 18:14:50 有538人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶