您的位置:

探究ECharts自适应宽度

一、ECharts比例自适应

ECharts是一款十分强大的可视化控件,现在已广泛应用于数据可视化方向,其自适应能力是其 突出的特点之一。其中比例自适应就是一种常用的自适应方式,它会将图表中每个元素的大小按照比例缩放。

比例自适应是特别适合在固定大小的容器中使用,例如下面的实例代码:


// 容器样式:宽400px, 高200px
#container{
    width: 400px;
    height: 200px;
    margin: 0 auto;
}
// 初始化图表
var myChart = echarts.init(document.getElementById('container'));
// 图表配置项
var option = {
    //... 其他配置项在此省略
}
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// 监听窗口大小变化进行比例自适应
window.addEventListener("resize", function() {
    myChart.resize();
});

以上代码就是一个简单的ECharts容器布局,width设置为400px,height设置为200px,如图所示:

图表随着窗口大小的变化自适应宽度,但是图表元素的大小不会改变,图表看起来的缩放效果非常不错,就可以让图表主体突出重点。

二、ECharts宽度自适应

其他自适应方式如宽度自适应,能够让图表随着容器的宽度而自适应显示。接下来 我们就来看一下宽度自适应的实现方式。

以下是一个简单的ECharts容器布局代码实例,如图所示:


// 容器样式:宽100%, 高400px
#container{
    width: 100%;
    height: 400px;
    margin: 0 auto;
}
// 初始化图表
var myChart = echarts.init(document.getElementById('container'));
// 图表配置项
var option = {
    //... 其他配置项在此省略
}
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// 监听窗口大小变化进行宽度自适应
window.addEventListener("resize", function() {
    myChart.resize();
});

在容器的样式中,将宽度设置为100%,高度设置为400px,宽度随着窗口大小的变化而变化,而高度则始终保持不变。随着窗口大小的变化,图表的宽度也相应的发生变化,样式看起来就非常的美观。

三、ECharts在宽度变动

在开发过程中,由于 ECharts 随着窗口大小的改变而自适应,所以可能需要在宽度变化后重新设置图表等相关信息。

以下是一个简单的示例代码:


var myChart = echarts.init(document.getElementById('container'));

function resize() {
    // 将这里设置为需要的值即可。
    myChart.setOption({
        // 配置项...
    });
}

// 启用监听事件,监听窗口变化
window.addEventListener('resize', resize);

开启监听事件后,在 resize 函数中重新进行设置,这样就可以保证图表始终铺满整个容器的宽度。

四、ECharts自适应屏幕

当宽度和高度都设置为100%时,ECharts 将自适应屏幕,同时保持固定比例。

以下是一个简单的示例代码:


var myChart = echarts.init(document.getElementById('container'));

function resize() {
  // 设置容器的高度和宽度
  var bodyHeight = document.documentElement.clientHeight;
  var bodyWidth = document.documentElement.clientWidth;
  var container = document.getElementById('container');
  container.style.width = bodyWidth + 'px';
  container.style.height = bodyHeight + 'px';

  // 刷新图表
  myChart.resize();
}

// 启用监听事件,监听窗口变化
window.addEventListener('resize', resize);

在这个示例中,容器的高度和宽度均由将 body 的高度和宽度 设置为得到,以保证整个 ECharts 实例能够完全占据当前屏幕的空间。

五、ECharts自适应

ECharts允许在同一个容器中展示多个图表,这时要注意不要让图表间的样式互相影响。可以使用自适应来调整每个图表的样式,如使每个图表铺满当前容器的空间,同时在外观上也能保持相应的比例。

以下是一个简单的示例代码:


var myChart1 = echarts.init(document.getElementById('container1'));
var myChart2 = echarts.init(document.getElementById('container2'));

function resize() {
  // 容器的宽高需要手动设置
  var bodyWidth = document.documentElement.clientWidth;
  var width = (bodyWidth - 60) / 2;

  document.getElementById('container1').style.width = width + 'px';
  document.getElementById('container2').style.width = width + 'px';

  myChart1.resize();
  myChart2.resize();
}

// 启用监听事件,监听窗口变化
window.addEventListener('resize', resize);

在这个示例中,我们一共在容器中展示了两个图表,分别为 container1 和 container2。resize 函数中手动设置了容器和宽度,这样就能够让两个图表铺满当前容器的空间。

六、ECharts固定文字宽度

有时候我们需要控制文字的长度在一个范围之内,这时候我们可以使用自适应方法来控制文字宽度。

以下是一个简单的示例代码:


// 首先要设置容器中文本的样式


// 在容器中展示文本

   
{{ text }}
// 获取容器大小并更新文本的样式 var container = document.getElementById('container'); var span = container.querySelector('span'); window.addEventListener('resize', function() { var width = container.clientWidth; span.style.maxWidth = width + 'px'; });

在这个示例中,我们首先为容器中的文本设置了样式,再通过监听事件获取容器大小,最后根据容器大小来更新文本的样式。这样就能够保证文本长度始终在一个合适的范围内。

总结

本文从多个方面对 ECharts的自适应宽度做了详尽的阐述,涉及到比例自适应、宽度自适应、在容器宽度变动的处理、自适应屏幕和固定文字宽度上。掌握这些自适应知识后,对于 ECharts 的开发,也会更加得心应手。