echart:所有类型的图

简介: 本文档介绍了基于 Vue 3 的 ECharts 基础代码示例,包括柱状图、折线图、饼状图、环状图、散点图和雷达图的配置和使用方法。每个图表类型都提供了详细的代码示例和配置说明,帮助开发者快速上手并实现各种图表展示效果。

前言

本文档旨在为开发者提供基于 Vue 3 的 ECharts 基础代码示例,涵盖多种常见图表类型,包括柱状图、折线图、饼状图、环状图、散点图和雷达图。每种图表类型不仅附带了详尽的代码示例,还包含了相应的配置说明,以便开发者能够轻松理解和实现不同的图表展示效果。通过这些示例,开发者可以快速上手 ECharts,灵活地将数据可视化应用于实际项目中,提升用户体验和数据分析的效果。无论是展示趋势、对比数据还是分析分布,本文档都将为您提供必要的工具和指导。

基础代码

vue3

```XML
<template>
    <div>
        <div class="data-view">
            <el-card>
                <div id="main1"></div>
            </el-card>
        </div>
    </div>
</template>
<script  setup>
import * as echarts from 'echarts'
import { onMounted } from 'vue';
onMounted(() => {
    let chartDom = document.getElementById("main1")
    // 可改变颜色
    // let myChart = echarts.init(chartDom,"dark");
    let myChart = echarts.init(chartDom);
    let option = {
        // 当鼠标放在bar 上面  会出现 提示
        tooltip: {
            show: true,
            trigger: 'axis',
            axisPointer: {
                type: "cross" // shadow,line,cross
            }
        },
        title: {
            text: "主标题",
            x: "center",
            y: "top",
            subtext: "副标题"
        },
        legend: {
            // type: "scroll",
            orient: "horizontal", // vertical
            icon: 'rect',//形状  类型包括 circle,rect,line,roundRect,triangle,diamond,pin,arrow,none
            itemWidth: 16,  // 设置宽度
            itemHeight: 16, // 设置高度
            itemGap: 28, // 设置间距
            // data: ['最高温', '最低温'],
            data: ['大一', '大二', '大三'],
            textStyle: {
                //文字样式
                color: '#c1dafc',
                fontSize: '14'
            },
            left: '20%'
        },
        xAxis: [
            {
                offset: 10,
                // max: 2020,
                name: '年月',
                type: 'category',
                data: ['2019.05', '2019.06', '2019.07', '2019.08'],
                axisPointer: {
                    type: 'shadow'
                },
                //  x 轴的 线 的操作
                axisLine: {
                    symbol: "arrow",
                    lineStyle: {
                        type: "solid"
                    }
                },
                //   刻度线的操作
                axisTick: {
                    length: 6,
                    type: "",
                },
                axisLabel: {
                    // formatter: "{value}kg",
                    align: "center"
                }
            },
        ],
        yAxis: [
            //  添加两个的话 ,另一个会在另一边
            // {
            //     type: "value", name: "上课时间"
            // },
            {
                //  坐标轴的位置
                // position: "right",
                axisLine: {
                    show: true,
                },
                type: 'value',
                name: '课时数',
                nameLocation: 'end',
                min: 0,
                max: 200,
                interval: 50, // 每次显示的间隔
                axisLabel: {
                    formatter: '{value}'
                },
            }
        ],
        series: [
            {
                name: '大一',
                type: 'bar',
                barWidth: '30%',
                data: [89, 101, 181, 141],
                emphasis: {
                    focus: 'self',// self  当放上去就显示自己,series 显示所有相关的,
                    blurScope: "series"
                },
            },
            {
                name: '大二',
                type: 'bar',
                barWidth: '30%',
                data: [84, 87, 142, 138],
                emphasis: {
                    itemStyle: {
                        // 高亮时点的颜色。
                        color: 'blue'
                    },
                    label: {
                        show: true,
                        // 高亮时标签的文字。
                        formatter: 'This is a emphasis label.'
                    }
                }
            },
            {
                name: '大三',
                type: 'bar',
                barWidth: '30%',
                // 改变两个bar 的间距
                barGap: '0',
                data: [101, 109, 151, 132]
            }
        ],
        color: ['#E6A23C', '#409EFF', '#67C23A']
    };
    myChart.setOption(option);
})
</script>
<style scoped lang="scss">
.data-view {
    width: 100%;
    display: flex;
    justify-content: space-between;
    .el-card {
        width: 40%;
        #main1,
        #main2 {
            height: 500px;
        }
    }
}
</style>

折线图

type改成line

stack:‘x’,

平滑曲线: smooth [    ](      smooth: true):true

简单属性

let option3 = {
            color: ["#00f2f1", "#ed3f35"],
            title: {
                text: 'Stacked Line'
            },
            tooltip: {
                trigger: 'axis'
            },
            legend: {
                // type: "rect",
                icon: "circle",
                textStyle: {
                    color: "#4c9bfd"
                },
                right: "10%"
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true,
                show: true,
                borderColor: "#012f4a"
            },
            toolbox: {
                feature: {
                    saveAsImage: {}
                }
            },
            xAxis: {
                type: 'category',
                //  将点放不放在 y 轴上
                boundaryGap: false,
                data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
                //   刻度线
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    color: "#4c9bfd"
                },
                //  去除轴线
                axisLine: {
                    show: false
                }
            },
            yAxis: {
                type: 'value',
                axisTick: {
                    show: false
                },
                splitLine: {
                    lineStyle: {
                        color: "#012f4a"
                    }
                }
            },
            series: [
                {
                    name: 'Email',
                    type: 'line',
                    data: yearData[a].data[a],
                    smooth: true
                },
                {
                    name: 'Union Ads',
                    type: 'line',
                    data: yearData[b].data[a],
                    smooth: true
                },
            ]
        };


饼状图

option = {
  series: [
    {
      type: 'pie',
      data: [
        {
          value: 335,
          name: '直接访问'
        },
        {
          value: 234,
          name: '联盟广告'
        },
        {
          value: 1548,
          name: '搜索引擎'
        }
      ],
      radius: '50%'
    }
  ]
};

不显示标签

label: {
                    show: false
                },

改变为玫瑰图

roseType: 'area'

Plain Text      点击可选      selectedMode: 'single',

环状图

需要4个数据

且 radius  中设置的值为数组为两个的时候会变成环状图

let option = {
        title: {
            text: '圆环图的例子',
            left: 'center',
            top: 'center'
        },
        series: [
            {
                type: 'pie',
                data: [
                    {
                        value: 335,
                        name: 'A'
                    },
                    {
                        value: 234,
                        name: 'B'
                    },
                    {
                        value: 1548,
                        name: 'C'
                    }
                ],
                //  大小,圆的半径
                radius: ['40%', '80%']
            }
        ]
    };


散点图


type: 'scatter',
let option = {
        xAxis: {
            data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
        },
        yAxis: {},
        series: [
            {
                type: 'scatter',
                data: [220, 182, 191, 234, 290, 330, 310],
                symbolSize: 20,
                symbol:
                    'path://M51.911,16.242C51.152,7.888,45.239,1.827,37.839,1.827c-4.93,0-9.444,2.653-11.984,6.905 c-2.517-4.307-6.846-6.906-11.697-6.906c-7.399,0-13.313,6.061-14.071,14.415c-0.06,0.369-0.306,2.311,0.442,5.478 c1.078,4.568,3.568,8.723,7.199,12.013l18.115,16.439l18.426-16.438c3.631-3.291,6.121-7.445,7.199-12.014 C52.216,18.553,51.97,16.611,51.911,16.242z'
            }
        ]
    };


雷达图

mounted() {
        var chartDom = document.getElementById('main');
        var myChart = echarts.init(chartDom);
        let option = {
            title: {
                text: 'Basic Radar Chart'
            },
            legend: {
                right: 0,
                orient: 'vertical',
                data: ['Allocated Budget', 'Actual Spending']
            },
            radar: {
                // shape: 'circle',
                indicator: [
                    { name: 'Sales', max: 6500 },
                    { name: 'Administration', max: 16000 },
                    { name: 'Information Technology', max: 30000 },
                    { name: 'Customer Support', max: 38000 },
                    { name: 'Development', max: 52000 },
                    // { name: 'Marketing', max: 25000 }
                ]
            },
            series: [
                {
                    name: 'Budget vs spending',
//  polygon
                    type: 'radar',
                    data: [
                        {
                            value: [4200, 3000, 20000, 35000, 50000,],
                            name: 'Allocated Budget'
                        },
                        {
                            value: [5000, 14000, 28000, 26000, 42000],
                            name: 'Actual Spending'
                        }
                    ]
                }
            ]
        };
        myChart.setOption(option);
    }



相关文章
|
1天前
|
编解码 Java 程序员
写代码还有专业的编程显示器?
写代码已经十个年头了, 一直都是习惯直接用一台Mac电脑写代码 偶尔接一个显示器, 但是可能因为公司配的显示器不怎么样, 还要接转接头 搞得桌面杂乱无章,分辨率也低,感觉屏幕还是Mac自带的看着舒服
|
3天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1540 5
|
1月前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
7天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
577 22
|
3天前
|
存储 SQL 关系型数据库
彻底搞懂InnoDB的MVCC多版本并发控制
本文详细介绍了InnoDB存储引擎中的两种并发控制方法:MVCC(多版本并发控制)和LBCC(基于锁的并发控制)。MVCC通过记录版本信息和使用快照读取机制,实现了高并发下的读写操作,而LBCC则通过加锁机制控制并发访问。文章深入探讨了MVCC的工作原理,包括插入、删除、修改流程及查询过程中的快照读取机制。通过多个案例演示了不同隔离级别下MVCC的具体表现,并解释了事务ID的分配和管理方式。最后,对比了四种隔离级别的性能特点,帮助读者理解如何根据具体需求选择合适的隔离级别以优化数据库性能。
201 3
|
10天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
10天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
571 5
|
23天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
6天前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
233 3
|
9天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
327 2