欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue使用Highcharts實現(xiàn)不同高度的3D環(huán)形圖

 更新時間:2022年03月29日 19:17:39   作者:??(?˙▽˙?)??  
這篇文章主要為大家詳細介紹了vue使用Highcharts實現(xiàn)不同高度的3D環(huán)形圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Highcharts實現(xiàn)不同高度的3D環(huán)形圖的具體代碼,供大家參考,具體內(nèi)容如下

要實現(xiàn)的效果:

完整代碼如下:

// 修改3d餅圖繪制過程
var each = Highcharts.each,
?? ?round = Math.round,
?? ?cos = Math.cos,
?? ?sin = Math.sin,
?? ?deg2rad = Math.deg2rad;
Highcharts.wrap(Highcharts.seriesTypes.pie.prototype, 'translate', function(proceed) {
?? ?proceed.apply(this, [].slice.call(arguments, 1));
?? ?// Do not do this if the chart is not 3D
?? ?if (!this.chart.is3d()) {
?? ??? ?return;
?? ?}
?? ?var series = this,
?? ??? ?chart = series.chart,
?? ??? ?options = chart.options,
?? ??? ?seriesOptions = series.options,
?? ??? ?depth = seriesOptions.depth || 0,
?? ??? ?options3d = options.chart.options3d,
?? ??? ?alpha = options3d.alpha,
?? ??? ?beta = options3d.beta,
?? ??? ?z = seriesOptions.stacking ? (seriesOptions.stack || 0) * depth : series._i * depth;
?? ?z += depth / 2;
?? ?if (seriesOptions.grouping !== false) {
?? ??? ?z = 0;
?? ?}
?? ?each(series.data, function(point) {
?? ??? ?var shapeArgs = point.shapeArgs,
?? ??? ??? ?angle;
?? ??? ?point.shapeType = 'arc3d';
?? ??? ?var ran = point.options.h;
?? ??? ?shapeArgs.z = z;
?? ??? ?shapeArgs.depth = depth * 0.75 + ran;
?? ??? ?shapeArgs.alpha = alpha;
?? ??? ?shapeArgs.beta = beta;
?? ??? ?shapeArgs.center = series.center;
?? ??? ?shapeArgs.ran = ran;
?? ??? ?angle = (shapeArgs.end + shapeArgs.start) / 2;
?? ??? ?point.slicedTranslation = {
?? ??? ??? ?translateX: round(cos(angle) * seriesOptions.slicedOffset * cos(alpha * deg2rad)),
?? ??? ??? ?translateY: round(sin(angle) * seriesOptions.slicedOffset * cos(alpha * deg2rad))
?? ??? ?};
?? ?});
});
(function(H) {
?? ?H.wrap(Highcharts.SVGRenderer.prototype, 'arc3dPath', function(proceed) {
?? ??? ?// Run original proceed method
?? ??? ?var ret = proceed.apply(this, [].slice.call(arguments, 1));
?? ??? ?ret.zTop = (ret.zOut + 0.5) / 100;
?? ??? ?return ret;
?? ?});
}(Highcharts));
// 生成不同高度的3d餅圖
Highcharts.chart('container', {
?? ?chart: {
?? ??? ?type: 'pie',
?? ??? ?animation: false,
?? ??? ?events: {
?? ??? ??? ?load: function() {
?? ??? ??? ??? ?var each = Highcharts.each,
?? ??? ??? ??? ??? ?points = this.series[0].points;
?? ??? ??? ??? ?each(points, function(p, i) {
?? ??? ??? ??? ??? ?p.graphic.attr({
?? ??? ??? ??? ??? ??? ?translateY: -p.shapeArgs.ran
?? ??? ??? ??? ??? ?});
?? ??? ??? ??? ??? ?p.graphic.side1.attr({
?? ??? ??? ??? ??? ??? ?translateY: -p.shapeArgs.ran
?? ??? ??? ??? ??? ?});
?? ??? ??? ??? ??? ?p.graphic.side2.attr({
?? ??? ??? ??? ??? ??? ?translateY: -p.shapeArgs.ran
?? ??? ??? ??? ??? ?});
?? ??? ??? ??? ?});
?? ??? ??? ?}
?? ??? ?},
?? ??? ?options3d: {
?? ??? ??? ?enabled: true,
?? ??? ??? ?alpha: 75,
?? ??? ?}
?? ?},
?? ?title: {
?? ??? ?text: 'XXXXXXXXXXX'
?? ?},
?? ?subtitle: {
?? ??? ?text: 'Highcharts 中的3D圓環(huán)圖'
?? ?},
?? ?plotOptions: {
?? ??? ?pie: {
?? ??? ??? ?allowPointSelect: true,
?? ??? ??? ?cursor: 'pointer',
?? ??? ??? ?depth: 35,
?? ??? ??? ?innerSize: 180,
?? ??? ??? ?dataLabels: {
?? ??? ??? ??? ?enabled: false
?? ??? ??? ?}
?? ??? ?}
?? ?},
?? ?series: [{
?? ??? ?type: 'pie',
?? ??? ?name: 'Browser share',
?? ??? ?data: [{
?? ??? ??? ?'name': 'Firefox',
?? ??? ??? ?y: 30.0,
?? ??? ??? ?h: 50
?? ??? ?}, {
?? ??? ??? ?name: 'IE',
?? ??? ??? ?y: 26.8,
?? ??? ??? ?h: 15
?? ??? ?}, {
?? ??? ??? ?name: 'Chrome',
?? ??? ??? ?y: 12.8,
?? ??? ??? ?h: 20
?? ??? ?}, {
?? ??? ??? ?'name': 'Safari',
?? ??? ??? ?y: 8.5,
?? ??? ??? ?h: 2
?? ??? ?}, {
?? ??? ??? ?'name': 'Opera',
?? ??? ??? ?y: 6.2,
?? ??? ??? ?h: 15
?? ??? ?}, {
?? ??? ??? ?'name': 'Others',
?? ??? ??? ?y: 0.7,
?? ??? ??? ?h: 30
?? ??? ?}]
?? ?}]
});
<div id="container" style="height: 400px"></div>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論