项目需求
Echarts实现X轴Y轴均为对数轴。
问题描述
之前使用Echarts实现过一些类目轴(category)图表,第一次接触对数轴,查了半天文档实现如下
理想实现效果是
原因分析
Echarts中xAxis使用log轴之后,data属性不可使用,所以导致yAxis,xAxis使用统一数据源series下的data,才会形成呈直线上升的问题。
解决方案
删除xAxis中的data属性,在series中data配置二维数组。如:[[x值,y值],[x值,y值]]
因为数据全部通过计算得到,所以我这边把数据整理了成二维数组,在遍历生成多个series。
const handleCalculate = () => {
// 省略了一些逻辑
const data = types.map((type) => {
return xData.map((m) => {
return [m, calculator(type, m)];
});
});
setChartData(data);
}
const series = () => {
const seriesArr = chartData.map((c, i) => {
const obj = {
name: types[i],
data: c,
type: 'line',
smooth: true,
};
return obj;
});
return seriesArr;
};
最终实现
不足之处,请批评指正,谢谢!