echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式

pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm=1001.2014.3001.5501

为了完成在pdf中导出echarts图,如果边框加在dom上面,pdf-lib导出svg的时候并不会导出边框,所以只能在echarts图上面加边框
grid的边框是在图里面
graphic相当于是加了一个图层
注:必须固定echarts图的大小

页面显示
在这里插入图片描述
pdf导出显示
在这里插入图片描述
代码

const chart = this.$echarts.init(this.$refs.chartRef, "", {
        renderer: "svg", // 强制使用 SVG
        devicePixelRatio: 2, // 通常设为 2(Retina 屏)或更高,这样在页面上图片不会变糊了
      });
      chart.setOption({
        title: { text: "示例 ECharts 图表1" },
        tooltip: {},
        grid: {
          left: "5%",
          right: "5%",
          top: "14%",
          bottom: "10%",
          borderColor: "red", // 边框颜色
          borderWidth: 0.5, // 边框宽度
          show: true,
          containLabel: true,
        },
        graphic: [
          {
            type: "group",
            left: "0%",
            top: "center",
            children: [
              {
                type: "rect",
                z: 1,
                left: "center",
                top: "middle",
                shape: {
                //图的宽高和位置
                  width: 580,
                  height: 260,
                },
                style: {
                  // fill: "#ddd",
                  stroke: "#ddd",
                  lineWidth: 1,
                  //阴影设置
                  // shadowBlur: 8,
                  // shadowOffsetX: 3,
                  // shadowOffsetY: 3,
                  // shadowColor: "rgba(0,0,0,0.2)",
                  fill: "none", //不填充内容图层
                },
              },
            ],
          },
        ],
        xAxis: { data: ["A", "B", "C", "D", "E"] },
        yAxis: {},
        series: [
          {
            name: "数量",
            type: "bar",
            data: [5, 20, 36, 10, 10],
          },
        ],
      });
### ECharts Legend 样式的自定义方法 在 ECharts 中,可以通过配置项 `legend` 来实现对饼样式的高度定制化。以下是关于如何自定义 ECharts样式的详细说明: #### 1. 基本配置 ECharts 的 `legend` 属性允许开发者设置多个参数来调整例的外观和行为。例如,可以更改标形状、字体大小、颜色以及位置等。 ```javascript option = { legend: { orient: 'vertical', // 设置例的方向为垂直排列 top: 'center', // 例位于顶部中间 left: 'right', // 例靠右显示 icon: 'circle', // 将标改为圆形 [^1] itemWidth: 25, // 修改例标记的宽度 itemHeight: 14, // 修改例标记的高度 textStyle: { // 定义例的文字样式 color: '#333', fontSize: 12, fontWeight: 'bold' } }, series: [{ type: 'pie', radius: ['50%', '70%'], data: [ {value: 335, name: '直接访问'}, {value: 310, name: '邮件营销'}, {value: 234, name: '联盟广告'} ], label: { normal: { formatter: '{b}: {d}%' // 自定义标签信息 [^2] } } }] }; ``` 上述代码展示了如何通过 `icon` 参数将默认矩形例更改为圆形象素点,并设置了其他属性如宽高、文字风格等。 #### 2. 更改例的颜色 如果希望例的颜色与实际表中的扇区一致,则可以在全局或者局部指定配色方案。这通常由 `color` 数组完成。 ```javascript color: ['#c487ee','#deb140','#49dff0','#034079','#6f81da','#00ffb4'] [^2]; ``` 此数组会依次应用于所有的系列数据上,从而影响到对应的例项目背景填充色。 #### 3. 动态交互效果——点击事件触发高亮展示特定部分 为了达到某些区域被选中时自动放大或其他视觉强调的效果,可利用回调函数监听用户的操作动作并作出响应。 ```javascript myChart.on('click', function (params) { let selectedDataIndex = params.dataIndex; myChart.setOption({ series: [{ emphasis: { scaleSize: true, focus: 'self' // 当前元素聚焦模式开启 }, select: { itemStyle: { borderColor: '#ff0000', borderWidth: 2 } } }], graphic: [{type:'text'}],// 添加额外图形组件用于动态更新提示语句等内容 }); }); ``` 以上脚本片段实现了当用户单击某个分片后该分片会被特别标注出来(边框变红加粗),同时还可以进一步扩展功能比如改变整个页面布局适应新的状态等等。 --- ### 注意事项 - 如果需要更加复杂的个性化需求,可能还需要借助 HTML/CSS 手动渲染外部 DOM 结合 echarts api 实现完全自由度的设计。 - 对于移动端适配问题也要考虑进去,在不同屏幕尺寸下保持良好的用户体验至关重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值