this.dataTadeList 是我后端的数据 在vue中获取 然后在option中使用
this.dataTadeList = [{ },{ }, {}] 数据就是数组中是对象
this.option = {
series: [
{
markPoint: {
data: this.dataTadeList
}
}
]
}
这样标记点不显示
-------------------------------------------------------------------------------------------------
this.option = {
series: [
{
markPoint: {
data: [
{
yAxis: '0.16011978',
xAxis: "2022-01-06 03:46:00",
value: 'buy'
},]
}
}
]
}
但是直接写在option 中 就可以显示
-----------------------------------------------------------------------------------------------------
我以为是我获取后端数据的类型不对 就 直接在获取后 给dataTadeList 赋值
this.dataTadeList =[
{
yAxis: '0.16011978',
xAxis: "2022-01-06 03:46:00",
value: 'buy'
},]
this.option = {
series: [
{
markPoint: {
data: this.dataTadeList
}
但是这样还是不行,不知道 怎么改
所以到底要要怎么写?
我要做的就是 在K线图中 标注买卖点 买卖点数据是后台数据提供的
你要是从后台获取的数据,那你可能 图已经画完,数据才请求回来。所以 你请求完可能需要重新画一下图,或者说请求完再画图,也就是 setOption
按照你的说法,应该不是 结构不对 。
不知道你这个问题是否已经解决, 如果还没有解决的话:首先用 npm 安装
npm install echarts --save
ECharts 本身已经很好的支持了按需引入,在vue 组件中 import 需要的组件就可以使用了,使用前需要先给 ECharts 指定一个容器,
<template>
<!--图表内容区域,必须给 ECharts 容器本身指定高度。不然它会使用默认高度-->
<div class = "chart">
<div id = "echarts" style = "height: 17.5rem"></div>
</div>
</template>
<script>
import echarts from 'echarts/lib/echarts'
import 'zrender/lib/svg/svg'
import 'echarts/lib/chart/line'
import 'echarts/lib/chart/candlestick'
import chartUtil from '../../utils/chartUtil'
export default {
name: 'quotation',
data () {
return {
chart: null,
}
},
mounted () {
//初始化 ECharts 实例,不能在created生命周期内初始化,因为那时候DOM还没有渲染,是找不到元素的
this.initChart()
},
beforeDestroy () {
//组件销毁前先销毁 ECharts 实例
if (!this.chart) { return }
this.chart.dispose()
this.chart = null
},
methods: {
initChart () {
// 基于准备好的dom,初始化echarts实例,移动端建议使用 svg模式
this.chart = echarts.init(document.getElementById('echarts'), 'light', {renderer: 'svg'})
this.chart.setOption(chartUtil.lineOption())
//图标根据窗口大小自动缩放
// window.addEventListener("resize", this.chart.resize);
},
},
}
</script>
这里有几个需要注意的地方: