Echarts基础学习 7-graphic和可拖拽点

graphic

graphic原意也是“图表”,graphic类似于Css的position:absolute属性,在原有的图表上,画一个新图表。

<div class="echart">
	<div class="graphic" style="positon: absolute; z-index: 100">
	</div>
</div

通过下面两张图明确graphic的效果

在这里插入图片描述

在这里插入图片描述

type:group

在官网示例代码中可以看到,graphic是可以配置多个图形元素的。其中type:'group可以嵌套子节点。上图的水印就是由一个文本和一个矩形组合而成的。

在这里插入图片描述

Echarts事件 dispatchAction 和 on

请先阅读setOptionconverToPixel官网文档:https://echarts.apache.org/zh/api.html#echartsInstance.setOption

setOption

设置图表实例的配置项以及数据,万能接口,所有参数和数据的修改都可以通过 setOption 完成,ECharts 会合并新的参数和数据,然后刷新图表。如果开启动画的话,ECharts 找到两组数据之间的差异然后通过合适的动画去表现数据的变化。

convertToPixel

在直角坐标系(cartesian,grid)上,把某个点的坐标转换成为像素坐标:

// [300, 900] 表示该点 x 轴上对应刻度值 300,y 轴上对应刻度值 900。
// 注意,一个 grid 可能含有多个 xAxis 和多个 yAxis,任何一对 xAxis-yAxis 形成一个 cartesian。
// 使用第三个 xAxis 和 id 为 'y1' 的 yAxis 形成的 cartesian 进行转换:
chart.convertToPixel({xAxisIndex: 2, yAxisId: 'y1'}, [300, 900]);
// 使用 id 为 'g1' 的 grid 的第一个 cartesian 进行转换:
chart.convertToPixel({gridId: 'g1'}, [300, 900]);

ECharts 中的事件有两种,一种是鼠标事件,在鼠标点击某个图形上会触发,还有一种是 调用 dispatchAction 后触发的事件。dispatchAction就是手动触发。以events中的dataZoomaction中的dataZoom为例,

绑定一个数据区缩放后的事件:

myChart.on('dataZoom', handleFun);

手动触发:

myChart.dispatchAction({
	type: 'dataZoom',
	start: 10,
	end: 20
})

相关案例:案例代码

代码中的某些逻辑:setTimout确保在图表渲染完成后绑定组件,setOption用来更新图表

echarts 是一款非常流行的数据可视化工具,可以用来快速绘制各种图表。在 echarts 中添加 el-radio-button 可以用来实现图表中的单选按钮,具体操作步骤如下: 1. 安装 echarts 和 element-ui 在项目中安装 echarts 和 element-ui,可以通过以下命令进行安装: ``` npm install echarts --save npm install element-ui --save ``` 2. 引入 echarts 和 element-ui 在需要使用 echarts 的页面中引入 echarts 和 element-ui: ```javascript import echarts from 'echarts' import { RadioGroup, RadioButton } from 'element-ui' Vue.use(RadioGroup) Vue.use(RadioButton) ``` 3. 在图表中添加 el-radio-button 在图表的 option 中添加一个包含 el-radio-button 的组件: ```javascript { title: { text: '柱状图示例' }, tooltip: {}, legend: { data:['销量'] }, xAxis: { data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }], toolbox: { feature: { dataView: {show: true, readOnly: false}, magicType: {show: true, type: ['line', 'bar']}, restore: {show: true}, saveAsImage: {show: true} } }, // 添加 el-radio-button 组件 graphic: { type: 'group', left: 'center', top: 'bottom', children: [ { type: 'radioButtonGroup', id: 'bar-radio-group', left: 0, top: 0, children: [ { type: 'radioButton', id: 'bar-radio-1', value: 'bar', text: '柱状图', textStyle: { fontSize: 12 }, width: 70, height: 20, borderColor: '#000', backgroundColor: '#fff' }, { type: 'radioButton', id: 'bar-radio-2', value: 'line', text: '折线图', textStyle: { fontSize: 12 }, width: 70, height: 20, borderColor: '#000', backgroundColor: '#fff' } ], onChange(idx) { if (idx === 0) { chart.setOption({ series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }] }) } else if (idx === 1) { chart.setOption({ series: [{ name: '销量', type: 'line', data: [5, 20, 36, 10, 10, 20] }] }) } } } ] } } ``` 4. 相关问题: 1. 如何在 echarts 中添加其他 element-ui 组件? 2. 如何使用 echarts 绘制折线图? 3. 如何使用 echarts 绘制饼图?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值