教程
快速开始
安装
easyset 依赖于 echarts,使用前请确认是否正确引入 echarts
npm install easyset --save
#or
yarn add easyset
<script src="./easyset(.min).js" />
第一个例子
<div class="chart" id="first"></div>
let firstData = [
{ name: "banana", value: 100, time: "1月1日" }, // 1月1日香蕉销量100
{ name: "apple", value: 200, time: "1月1日" }, // 1月1日苹果销量200
{ name: "orange", value: 240, time: "1月1日" } // 1月1日苹果销量200
];
let firstOption = this.$ec.barChart(firstData, {
legend: "time",
x: "name",
y: "value",
formatter: {
title: "图表标题"
}
});
let first = echarts.init(document.getElementById("first"));
first.setOption(firstOption);
数据规范
在 easyset 中,,所有的输入数据都是数组对象,并且都有一个特点,数组的每个数组项都对应图表的一个数据项,我们完全可以通过口头描述数组中的某项数据,知道它应该是在图表中应该对应表达什么。而且在数据项中,键值对的键不能作为图表中的值。 比如:
// 我们可以这样描述每一个数据项, 某天某个水果达到某销量
// 符合规范的数据
let data = [
{ name: "banana", value: 100, time: "1月1日" },
{ name: "apple", value: 200, time: "1月2日" },
{ name: "orange", value: 240, time: "1月3日" }
];
// 不符合
data = [
{ banana: 100, time: "1月1日" },
{ apple: 200, time: "1月2日" },
{ orange: 240, time: "1月3日" }
];
这样的数据更方便用户阅读和理解,同时的数据格式也贴近关系数据库的数据表的形式,这样的数据也更加通用,方便二次使用。使用这样的数据也方便服务端去做第三方接口的服务化应用。
配置方式
快速简单的配置
每一种图表都有自己的快捷配置方式,假如你能理解 easyset 的数据规范,那么这个对你将毫无难度。
let easyData = [
{ name: "banana", value: 100, time: "1月1日" },
{ name: "apple", value: 200, time: "1月2日" },
{ name: "orange", value: 240, time: "1月3日" }
];
let easyPieOption = ec.pieChart(easyData, {
legend: "name",
val: "value"
});
let easySetPie = echarts.init(document.getElementById("easySetPie"));
easySetPie.setOption(easyPieOption);
let easyBarOption = ec.barChart(easyData, {
x: "name",
y: "value",
direction: "horizontal" // 可选,横向的图表
// stack: true, // 可选,开启堆积图
});
let easySetBar = echarts.init(document.getElementById("easySetBar"));
easySetBar.setOption(easyBarOption);
便捷的 formatter
easyset 能够便捷的进行常用的格式化操作
let option = ec.barChart(data, {
x: "name",
y: "value",
formatter: {
yName: "(价格)",
title: "水果",
xAxis(value) {
return value.toUpperCase(); // 转大写英文
},
yAxis(value) {
return "$" + value;
},
tooltip(p) {
return "水果";
}
}
});
let chart = echarts.init(document.getElementById("formatBar"));
chart.setOption(option);
主题设置
主题设置的优先级从高到低的顺序是 easyset 的 option --> 某个图表的 option --> 全局的 option
全局主题
通过ec.globalOption(option, deep)
来配置全局主题,deep 参数是 true 的时候会将新的 option 深度覆盖到旧的 option 上;如果是 false 或者忽略,新 option 将会替换掉旧的 option。
图表主题
通过ec.[chart name]Option(option, deep)
来配置全局主题,deep 参数是 true 的时候会将新的 option 深度覆盖到旧的 option 上;如果是 false 或者忽略,新 option 将会替换掉旧的 option。
例如:
// 设置barChart的option, 该option替换掉旧的option
ec.barOption({
xAxis: {
type: "category",
},
yAxis: {
type: "value"
},
series: [{
type: "bar"
}]
});
// 设置barChart的option.该option覆盖再旧的option上
ec.barOption({
color: ["#000", "#111", "#222", "#333"]
}, true);
特殊个例主题设置
在使用图表的时候难免会有需要一些特殊的设置,所以easyset的配置项可以作为类似echarts的拓展配置项来用。
let chartOption = ec.barChart(firstData, {
// easyset的设置项变成easySet作为easy的拓展配置项
easySet: {
legend: "time",
x: "name",
y: "value",
formatter: {
title: "图表标题"
}
},
// easySet 同级可以使用echats有的配置项,涉及数据应该交给easySet处理,而不是在这里输入
color: ["#ccc"],
...
})
// 因为easyset本身生成的echarts的配置项,也可以在生成option后再修改
// echarts的title配置
chartOption.title = {
text: "title name"
}