框架react

import React from 'react';
import {Pie} from 'react-chartjs-2';const data = {labels: ['1Red','2pit','3Yel','4Ye','5Ye','6Ye','7Y','8Y','9Yel','10Ye','11Y','12Ye',],datasets: [{data: [300, 50, 289,100,89,90,100,44,254,456,88,874],backgroundColor: ["#ff6384","#36a2eb","#ffce56","#00ffff","#0000ff","#a52a2a","#00008b","#008b8b","#a9a9a9","#006400","#bdb76b","#8b008b","#556b2f","#ff8c00","#9932cc","#8b0000","#e9967a","#9400d3","#ff00ff", "#ffd700","#008000","#4b0082","#f0e68c","#add8e6","#90ee90", "#d3d3d3","#ffb6c1","#00ff00","#ff00ff","#800000","#000080","#808000","#ffa500","#ffc0cb","#800080","#800080","#ff0000","#c0c0c0","#ffff00"],hoverBackgroundColor: ["#ff6384","#36a2eb","#ffce56","#00ffff","#0000ff","#a52a2a","#00008b","#008b8b","#a9a9a9","#006400","#bdb76b","#8b008b","#556b2f","#ff8c00","#9932cc","#8b0000","#e9967a","#9400d3","#ff00ff", "#ffd700","#008000","#4b0082","#f0e68c","#add8e6","#90ee90", "#d3d3d3","#ffb6c1","#00ff00","#ff00ff","#800000","#000080","#808000","#ffa500","#ffc0cb","#800080","#800080","#ff0000","#c0c0c0","#ffff00"],borderWidth:0}]
};
const lineOptions ={maintainAspectRatio: true,tooltips: {enabled: true,callbacks: {label: function (tooltipItem, data) {var dataset = data.datasets[tooltipItem.datasetIndex];var total = dataset.data.reduce(function (previousValue, currentValue, currentIndex, array) {return previousValue + currentValue;});var currentValue = dataset.data[tooltipItem.index];var percentage = Math.floor(((currentValue / total) * 100) + 0.5);return percentage + "%";},                    title: function (tooltipItem, data) {return data.labels[tooltipItem[0].index];},},},legend: {display: false,},layout: {padding: {left: 0,right: 0,top:50,bottom:20}},animation: {duration: 1,onComplete: function () {var chartInstance = this.chart,radian = 0,tmpRadian,middleRadian,ctx = chartInstance.ctx;Chart.defaults.global.defaultFontSize = 12 ;Chart.defaults.global.defaultFontFamily = 'PingFangTC';Chart.defaults.global.defaultFontStyle = '400';ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);ctx.textAlign = 'center';ctx.textBaseline = 'bottom';this.data.datasets.forEach(function (dataset, i) {var meta = chartInstance.controller.getDatasetMeta(i);meta.data.forEach(function (bar, index) {var data = dataset.data[index],x,y,r,dataPercentage,canvasWidth,canvasHeight,dataName,centerAngle;  r = (chartInstance.chartArea.bottom-chartInstance.chartArea.top)/2+20;//弧長centerAngle = bar._model.circumference;// 中間弧度radian = radian + centerAngle;tmpRadian = radian;middleRadian = tmpRadian - centerAngle/2// x、y坐標canvasWidth = bar._chart.chartArea.rightcanvasHeight = bar._chart.chartArea.bottom x = canvasWidth/2 + Math.sin(middleRadian) * r ;y = (canvasHeight+60)/2 -  Math.cos(middleRadian) * r ;//百分比dataPercentage =  Math.floor(((data/meta.total) * 100) + 0.5)dataName = bar._model.labelctx.fillStyle = '#222'ctx.fillText(dataName+':'+dataPercentage+'%',x,y,50);});});             }
}}export default React.createClass({displayName: 'PieExample',render() {return (<div>{/* <h2>Pie Example 111</h2> */}<Pie data={data} options={lineOptions}/></div>);}
});

chartjs(react-chartjs-2) 饼状图添加百分比显示相关推荐

  1. 做饼状图时,显示百分比的解决方案

    http://fluagen.blog.51cto.com/146595/86733 在项目中做饼状图时,显示百分比的解决方案: 饼图显示百分比 在饼图中JFreeChart默认只显示选项和数值,没有 ...

  2. MpAndroidChart源码修改之饼状图添加标志线

    由于项目需要,需要改MpandroidChart源码,下面,先看下效果图: 效果图 效果很简单,但是由于所选依赖库没提供相关方法,所以就需要重写源码了. 这条红色的标志线其实就是那个影厅的均值嘛,这条 ...

  3. JFreeChart框架中生成饼状图上怎样显示数据 [问题点数:40分,结帖人GreenLawn]

    我用JFreeChart框架生成饼状图,但想把数据信息在饼图上显示,是在饼图内部(即圆内)显示!怎样实现啊?? 去掉lable pieplot.setLabelGenerator(null); 去掉线 ...

  4. echarts 饼状图 扇面上显示 文字和百分比

    app.title = '饼图';option = {tooltip: {trigger: 'item',formatter: "{a} <br/>{b}: {c} ({d}%) ...

  5. 封装构造函数,用canvas写饼状图和柱状图

    封装构造函数,用canvas写饼状图和柱状图 封装函数 // 场景 function XDLScence( options ) {this.stage = options.stage;//执行场景的初 ...

  6. Angular2组件与Echarts饼状图交互之饼图制作

    一.前言 1.基于ng4项目 2.组件包括:根组件app和饼状图组件echart 二.饼状图开发过程 1.添加插件 echart cnpm install echarts --save 2.创建组件 ...

  7. python excel数据分析画直方图 饼状图_Excel数据可视化应用(直方图、折线图、饼状图)...

    直方图:对比关系 直方图是一种统计报告图,是表示资料变化情况的主要工具.直方图由一系列高度不等的的纵向条纹或线段表示数据分布的情况.一般用横轴表示数据类型,纵轴表示分布情况. 例1: 1.右键单击图表 ...

  8. JFreeChart在Struts2中实现饼状图统计

    在Struts2中,用JFreeChart实现饼状图统计 前段时间学习了一下JFreeChart,现在来整理一下自己所作的实例. 下面分别用两种方式来实现: 一种是以java应用程序的方式,一种是以w ...

  9. JFreeChart在Struts2中实现3D饼状图统计

    在Struts2中,用JFreeChart实现3D饼状图统计 前段时间学习了一下JFreeChart,现在来整理一下自己所作的实例. 下面分别用两种方式来实现: 一种是以java应用程序的方式,一种是 ...

最新文章

  1. sprintf、strcpy、strncpy及 memcpy 函数,请问这些函数功能有什么区别?配实例详解!
  2. 简述python中面向对象的概念_简述Python中的面向对象编程的概念
  3. struts2综合例子--------拦截器(登陆检查,日志记录),校验validate,
  4. 前端-requests-flask对应关系 file
  5. pptx库ppt演示 python_Python自动化操作PPT看这一篇就够了
  6. eureka 客户端服务启动了又失败了_Spring cloud Eureka服务注册与发现详解
  7. GNS3各种IOS下载
  8. oracle财务数据权限思考
  9. Win10自带的录屏功能怎么使用?
  10. java软件工程师培训学_Java软件工程师学习路线
  11. C++11 时间编程(3)时间点表示time_point,时钟类型,当前时间获取
  12. 前端个人博客案例模仿
  13. FFMPEG :resource temporarily unavailable
  14. 【PPT】跨境电商的N个知识点普及
  15. Pipeline 基础步骤
  16. 大数据分析课程(数据分析课设--包含代码)
  17. 计算机单机取证(autopsy工具使用)
  18. 刚开始能上网,过一会儿断网了
  19. Intel Xeon E5-4650 VS AMD Opteron 6380
  20. EasyRTC实现基于WebRTC技术实现的即时通信类应用

热门文章

  1. 网络互联技术-实验指导书
  2. 二极管钳位的作用原理
  3. php页面花屏,window_win7电脑突然花屏死机的几种原因和快速解决方法(推荐),win7系统电脑突然发生花屏死机 - phpStudy...
  4. vivo分屏_在家如何高效学习?试试vivo手机的隐藏功能,让你事半功倍
  5. 【车载IoT】国标《电动汽车远程服务与管理系统技术规范》:系统架构及协议概述
  6. 旅游网站建站用什么系统好?
  7. MAC解决VirtualBox打不开报错问题
  8. 【前端工具分享】Electron React Boilerplate(Electron+React项目模板,开箱即用)
  9. 如何清空c盘只剩系统_彻底清理C盘垃圾怎么操作?
  10. Symbian操作系统及操作平台界面详解