echarts markPoint显示(上面图片文字)

echarts markPoint显示(上面图片文字)

在这里插入图片描述

  data() {
    return {
      option1: {
        textStyle: {
          color: '#fff'
        },
        grid: {
          top: '34px',
          bottom: '34px'
        },
        xAxis: {
          type: 'category',
          nameTextStyle: {
            color: '#fff',
            fontSize: 14 // 字体大小
          },
          data: []
        },
        yAxis: {
          type: 'value',
          name: '(万元)',
          nameTextStyle: {
            color: '#fff',
            fontSize: 14 // 字体大小
          },
          splitLine: {
            // 分割线配置
            show: true,
            lineStyle: {
              color: 'rgba(0, 255, 255, .2)'
            }
          }
        },
        series: [
          {
            data: [],
            type: 'line',
            markPoint: {
              data: []
            },
            itemStyle: {
              normal: {
                lineStyle: {
                  color: '#0091FF'
                }
              }
            }
          }
        ]
      }
    }
  },
  methods: {
  getEventCharts1() {
      let url = '/apis/law/fine'
      Axios.get(url).then((res) => {
        if (res.data.code === 200) {
          let arr = res.data.data || []
          this.option1.series[0].data = arr.map((item) => item.num)
          arr.forEach((items, index) => {
            let obj = {
              name: '',
              value: items.num,
              xAxis: index,
              yAxis: items.num + 50,
              itemStyle: {
                color: '#0091FF'
              },
              symbolSize: [40, 30],
              symbol: 'image://' + require('@/assets/left/bar1.png')
            }
            this.option1.series[0].markPoint.data.push(obj)
            this.option1.series[0].markPoint.data = this.option1.series[0].markPoint.data.filter(
              (res) => res.value !== '0'
            )
          })
          this.option1.xAxis.data = arr.map((item) => item.mon)
          if (this.option1.series[0].data && this.option1.series[0].data.length > 0) {
            this.initChart1()
          }
        }
      })
    },
}
### 使用 ECharts 在大屏幕上实现柱状图 #### 初始化 ECharts 实例并准备容器 为了在大屏幕上显示柱状图,首先需要初始化 ECharts 的实例,并准备好用于容纳图表的 DOM 容器。 ```html <div id="main" style="width: 100%;height:600px;"></div> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> <script type="text/javascript"> var myChart = echarts.init(document.getElementById('main')); </script> ``` #### 配置项设置 接下来定义图表的具体配置项。对于大屏幕展示来说,合理的布局和清晰的数据呈现尤为重要。这里提供了一个基础配置模板: ```javascript var option = { title: { text: '销售业绩统计', subtext: '来自虚构数据集' }, tooltip: { trigger: 'axis' // 提示框组件,坐标轴触发方式 }, legend: { data:['产品A', '产品B'] }, toolbox: { feature: { saveAsImage: {} // 工具箱,保存图片等功能 } }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true, height: '70%' // 控制网格高度适应不同尺寸的大屏环境 }, xAxis : [ { type : 'category', boundaryGap : false, axisTick: {show:false}, data : ['周一','周二','周三','周四','周五','周六','周日'], nameTextStyle:{fontSize:'20'}// 设置X轴字体大小以便于阅读 } ], yAxis : [ { type : 'value', splitNumber: 5, // 减少分割线数量使界面更简洁 minInterval: 1000,// 设定最小间隔防止数值过密难以辨认 axisLabel:{ formatter:function(value){ return value / 1000 + 'k'; // 千位分隔符处理让数字更容易理解 } } } ], series : [ { name:'产品A', type:'bar', barWidth : '60%', // 加宽柱子宽度提高视觉效果 itemStyle: { color: '#FF9F7F' // 自定义颜色增强区分度 }, emphasis: { focus: 'series' }, data:[12000, 13200, 10100, 13400, 9000, 23000, 21000], markPoint: { data:[ {type: 'max', name: '最大值'}, {type: 'min', name: '最小值'} ] }, markLine: { lineStyle: { type: 'dashed' }, data: [{yAxis: 18000}] // 添加水平标线作为参考线 } }, { name:'产品B', type:'bar', stack: '总量', label: { show: true, position: 'insideRight' }, itemStyle: { color: '#5793f3' }, data:[22000, 18200, 19100, 23400, 29000, 33000, 31000] } ] }; myChart.setOption(option); ``` 此段代码展示了如何利用 `grid` 属性调整图表区域比例[^1];通过自定义样式来优化外观表现力,比如增加柱体宽度(`barWidth`)、改变配色方案(`itemStyle.color`)以及添加特殊标记点(`markPoint`) 和 标记线 (`markLine`). 同时还考虑到了实际应用中的细节问题,如减少 y 轴刻度数目(`splitNumber`)以保持整洁美观,适当放大文字字号(`nameTextStyle.fontSize`)方便远距离观看等特性[^2]. 此外,在面对多组对比类别的时候可以通过堆叠的方式直观展现整体趋势变化情况,即使用 `stack` 参数将多个系列组合起来形成累积效应. 对于某些特定场合可能还需要额外加入辅助工具栏(`toolbox.feature.saveAsImage`)允许观众随时导出当前视图图像文件供后续分析讨论之用. 最后值得注意的是,针对大型显示屏设备的特点,应当充分考虑到用户的视角舒适性和信息获取效率,合理规划各部分的空间分配与交互逻辑设计,从而达到最佳可视化传达目的.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值