javascript - 用于甜甜圈chart.js的vue组件中的重叠文本
问题描述
我有一个 chart.js 圆环图 vue 组件,如下所示
问题是当我使用多个图表实例时,中间的文本重叠。
但它们是重叠的。我尝试改变标题节奏,但没有任何作用。我怎样才能解决这个问题?我喜欢控制 HTML / 输出到标签的任何内容。
<script>
import { Doughnut } from "vue-chartjs";
export default {
name: "doughnutChart",
extends: Doughnut,
props: {
data1: {
type: String,
// default: function() {
// return;
// }
}
},
mounted() {
var value = this.data1;
var data = {
labels: ["My val", ""]
};
this.renderChart({
datasets: [{
borderWidth: 1,
backgroundColor: ["#FF6384", "#AAAAAA"],
hoverBackgroundColor: ["#FF6384", "#AAAAAA"],
hoverBorderColor: ["#FF6384", "#ffffff"],
data: [value, 100 - value]
}]
}, {
responsive: true,
maintainAspectRatio: true,
legend: {
display: false
},
cutoutPercentage: 70,
elements: {
center: {
text: '50%' //set as you wish
}
},
tooltips: {
filter: function(item, data) {
var label = data.labels[item.index];
if (label) return item;
}
}
});
this.textCenter(value)
},
methods: {
textCenter(val) {
Chart.pluginService.register({
beforeDraw: function(chart) {
var width = chart.chart.width,
height = chart.chart.height,
ctx = chart.chart.ctx;
ctx.restore();
var fontSize = (height / 114).toFixed(2);
ctx.font = fontSize + "em sans-serif";
ctx.textBaseline = "middle";
var text = val + "%",
textX = Math.round((width - ctx.measureText(text).width) / 2),
textY = height / 2;
ctx.fillText(text, textX, textY);
ctx.save();
}
});
}
}
};
</script>
解决方案
推荐阅读
- android - 如何在 android 的调试版本中禁用 Visual Studio App Center SDK?
- android - 从 Android Studio 运行时,为什么 Android 应用程序会在后台启动?
- c - 无法在 Visual Studio 代码中编译 C 程序
- android - 错误:参数的类型必须是使用@Entity 注释的类或其集合/数组
- scala - Scala:警告:1 次弃用(自 2.13.0 起);使用 -deprecation 重新运行以获取详细信息
- python-3.x - 进行推理时Tensorflow 2不同的批量大小
- flutter - 带有图标和文本位置的按钮
- ios - 是否可以在 iOS 12 上运行的类中使用 @available(iOS 13) 计算属性?
- android - Microsoft Exchange Active Sync 的 Android 帐户类型
- elasticsearch - Storm ui 中的拓扑不会发出或传输元组