vue3使用 echarts - 饼图、折线图
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
·
下载安装
npm install -S echarts
使用
饼图 - 带中心图形 - graphic - elements
import { onMounted, ref, reactive, unref, nextTick } from "vue";
import * as echarts from "echarts";
import circle from "@/assets/panel/circle.png"
import star from '@/assets/panel/star.png'
/** 页面初始化 */
onMounted(() => {
drawPieEchart("echart1", rightData.echartData1);
});
/** 饼图-echart */
const drawPieEchart = function (domId: string, data: any[]) {
const chartDom: any = document.getElementById(domId);
const myChart: any = echarts.init(chartDom);
const option: any = {
color: ['#43A2E7', '#EF6648'],
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
},
graphic: {
elements: [
{
type: 'image',
style: {
image: circle,
width: 90,
height: 90
},
left: 'center',
top: '106'
}]
},
series: [
{
type: "pie",
top: "6%",
radius: [70, 60],
silent: true, // 不响应和触发鼠标事件,默认为 false
itemStyle: {
borderRadius: 2,
borderColor: "#060F1E",
borderWidth: 2,
},
label: {
show: "true",
alignTo: "edge",
position: "outside",
formatter: function (data: any) {
return data.name + "\n" + data.percent + "%";
},
minMargin: 5,
edgeDistance: 0,
lineHeight: 20,
color: "#fff",
fontSize: 14,
rich: {
value: {
fontSize: 18,
color: "#30eeff",
},
},
},
labeLine: {
show: "true",
},
emphasis: {
label: {
show: true,
fontSize: 20,
fontWeight: "bold",
},
},
data: data,
},
],
};
option && myChart.setOption(option, true);
// 浏览器窗口大小变化,图表大小自适应
window.addEventListener("resize", () => {
myChart.resize();
});
};

折线图 - 图表标记 markPoint
/** 折线图-echart */
const drawFoldLine = function (domId: string, data: any) {
const chartDom: any = document.getElementById(domId);
const myChart = echarts.init(chartDom);
const option: any = {
color: ['#43A2E7', '#EF6648'],
tooltip: {
trigger: "axis",
backgroundColor:"#000910",
borderWidth:0,
borderRadius:0,
textStyle:{
color:'#fff'
},
axisPointer: {
type: "shadow",
},
},
legend: {
type: "plain",
textStyle: {
color: "#fff",
fontSize: 12,
},
left: 26,
top: 16,
data: [
{
name: '计划产值',
icon: 'circle',
},
{
name: '累计完成产值',
icon: 'circle',
}
],
},
grid: {
left: "3%",
right: "4%",
bottom: "3%",
containLabel: true,
},
xAxis: {
data: data.xAxisData,
type: "category",
boundaryGap: false,
textStyle: {
fontSize: 12,
color: "#A5B2BB",
},
axisLine: {
show: true,
lineStyle: {
color: "#657A8A",
},
},
axisLabel: {
showMaxLabel: true,
showMinLabel: true,
},
},
yAxis: {
type: "value",
textStyle: {
fontSize: 12,
color: "#A5B2BB",
},
axisLine: {
show: true,
lineStyle: {
color: "#657A8A",
},
},
splitLine: { // 修改背景线条样式
lineStyle: {
color: "#657A8A", // 线条颜色
// type: "dashed" // 线条样式,默认是实现,dashed是虚线
}
},
},
series: [
{
data: data.seriesData1,
type: 'line',
name: '计划产值',
smooth: true,
markPoint: {
symbol: "image://" + star,
symbolSize: 16,
symbolOffset: [0, '-50%'],
animation: true,
label: {
show: true,
color: '#fff',
fontSize: 14,
position: 'top',
backgroundColor: '#0B2E47',
padding: [4, 12]
},
data: [
{
coord: [1, 820],
value: '特殊标记1',
},
{
coord: [3, 901],
value: '特殊标记2',
},
{
coord: [6, 1330],
value: '特殊标记3',
}
]
}
},
{
data: data.seriesData2,
type: 'line',
name: '累计完成产值',
smooth: true
}
]
};
option && myChart.setOption(option, true);
// 浏览器窗口大小变化,图表大小自适应
window.addEventListener("resize", () => {
myChart.resize();
});
};

vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:4 个月前 )
9e887079
[skip ci] 1 年前
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 1 年前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)