vue2 highcharts-无法重新绘制图表以定位Pie
我正在使用VueJs和组件在可调整大小的容器中绘制一个3饼图作为单个Highchart。 要做到这一点,我需要在调整容器大小时重新定义馅饼的位置和大小。在我改变了系列的位置和尺寸后,我在重新画馅饼方面遇到了巨大的困难。下面是一些代码:vue2 highcharts-无法重新绘制图表以定位Pie,highcharts,vue.js,Highcharts,Vue.js,我正在使用VueJs和组件在可调整大小的容器中绘制一个3饼图作为单个Highchart。 要做到这一点,我需要在调整容器大小时重新定义馅饼的位置和大小。在我改变了系列的位置和尺寸后,我在重新画馅饼方面遇到了巨大的困难。下面是一些代码: <template> <div class="multiple-pie-wrapper" ref="root"> <vue-highcharts style="height: 100%; width: 100%
<template>
<div class="multiple-pie-wrapper" ref="root">
<vue-highcharts style="height: 100%; width: 100%;" :Highcharts="Highcharts" :options="options" ref="chart"></vue-highcharts>
</div>
</template>
<script>
import VueHighcharts from 'vue2-highcharts';
import Highcharts from 'highcharts';
export default {
props: {
options: { type: Object, required: true }
},
data: function () {
return {
Highcharts: Highcharts
};
},
components: {
VueHighcharts
},
methods: {
reflow: function() {
var series = this.options.series;
//... Calculate the new positions and sizes and set it to
// series[i].size and series[i].center
// HERE IS WHERE I SHOULD REDRAW IT
}
},
mounted() {
this.reflow();
}
}
</script>
我尝试了以下方法,但没有成功:
此.$refs.chart.chart.redraw
此。$refs.chart.chart.reflow
系列[i].setDataseries
它们都没有任何效果,并且我的Pie被打印,就好像中心和大小是默认值一样,因此相互重叠
有什么想法吗?我创建了一种重新设计图形的方法
reloadTypeSeries(){
let pizzaCharts = this.$refs.pizzaCharts;
let updateSeries = JSON.parse(this.updateoptions);
let concatJson = [];
$.each(updateSeries, function(key, value) {
concatJson = concatJson.concat([[updateSeries[key].name, updateSeries[key].y]]);
});
pizzaCharts.chart.series[0].setData(concatJson, true);
}
希望这有帮助 我在你的选项中看不到pie.center。您需要告诉Highcharts饼图应该放在哪里,例如:键入:'pie',中心:['25%,'50%']。。。我的回流方法正在运行时处理。这正是问题所在:一旦它被处理,它就不会用已处理的中心或sizeOh重新绘制图表,我明白了,很抱歉,我在代码中漏掉了那个注释。在回流方法中,您应该使用:this.$refs.chart.chart.series[i].更新{center:[…]};
reloadTypeSeries(){
let pizzaCharts = this.$refs.pizzaCharts;
let updateSeries = JSON.parse(this.updateoptions);
let concatJson = [];
$.each(updateSeries, function(key, value) {
concatJson = concatJson.concat([[updateSeries[key].name, updateSeries[key].y]]);
});
pizzaCharts.chart.series[0].setData(concatJson, true);
}