博文中插入echarts
最近想做一个基金的标注工具,用echarts开发了前端部分,顺便看到fluid
这个主题可以很方便的在博客中插入echarts图表,做一个记录。
教程参见: 使用 ECharts 插件绘制炫酷图表
第一步是安装插件
npm install hexo-tag-echarts --save
基础图表的例子
{% echarts 400 '85%' %}
option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: [150, 230, 224, 218, 135, 147, 260],
type: 'line'
}
]
};
{% endecharts %}
标注工具代码
let base = +new Date(2010, 1, 1);
let oneDay = 24 * 3600 * 1000;
let date = [];
let s = Math.random() * 300;
let data = [[s, s, s, s]];
for (let i = 1; i < 365*12; i++) {
var now = new Date((base += oneDay));
date.push([now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/'));
var v = ((Math.random() - 0.5) * 0.05 + 1)*data[i - 1][1];
// 开盘价、收盘价、最低价、最高价
data.push([v*(1 + (Math.random() - 0.5)*0.01), v, v*0.995, v*1.005]);
}
option = {
toolbox: {
feature: {
dataZoom: {
yAxisIndex: false
},
brush: {
type: ['lineX', 'clear']
}
}
},
brush: {
xAxisIndex: 0,
throttleType: 'debounce',
throttleDelay: 600,
inBrush: {
symbolSize: 4,
color: '#FF3333'
},
outOfBrush: {
colorAlpha: 0.1
}
},
dataZoom: [
{
type: 'inside',
start: 0,
end: 100
},
{
start: 0,
end: 100
}
],
xAxis: {
type: 'category',
data: date
},
yAxis: {
type: 'value'
},
series: [
{
data: data,
type: 'candlestick',
lineStyle: {
normal: {
width: 2,
}
}
}
]
};
myChart.on('brushSelected', function (params) {
var brushed = [];
var target = params.batch[0]['selected'][0]['dataIndex'];
if(target.length>0){
console.log(target);
console.log(target.length);
}
});
这里需要注意的是:
如果直接把上述所有代码放入{% echarts 400 '85%' %} {% endecharts %}
里是无法显示的。因为hexo-tag-echarts
这个插件在生成js代码的时候是将里面的东西均作为配置来用模板套用。比如上面的那个简单的折线图,生成的结果如下:
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('echarts8038'));
// 指定图表的配置项和数据
var option = option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: [150, 230, 224, 218, 135, 147, 260],
type: 'line'
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
所以需要将数据部分单独拎出来,放到
<script></script>
中。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!