如何让echart铺满设置的尺寸

如何让echart铺满设置的尺寸

在使用echart进行自适应时,给echart设置了100%,但是echart图表的大小并没有铺满100%;
在这里插入图片描述
样式的话,我是使用less,在页面渲染的时候,即使设置了尺寸,但会有一定的延迟,拿到的echart尺寸并是不我想要的;
可以通过让echart延迟显示,达到想要的效果;

  • 提供一个容器
    在这里插入图片描述
 constructor(props) {
    super(props);
    this.state = {
      loading: true,
      type: "供水",
    };
    this.echartbox1 = React.createRef();
    this.echartInit1 = null;
    this.throttleTimer = null;
  }

在这里插入图片描述

  • 在页面一渲染的时候进行设置
    在这里插入图片描述
 componentDidMount() {
    // console.info(this.echartbox1.current.offsetHeight);
    window.addEventListener("resize", this.onresize);

    // 1000ms后loading为false
    setTimeout(() => {
      this.setState({
        loading: false
      });
    }, 1000);
    // 由于less样式会有一定的延迟,echart图表的大小会有一定的变化
    setTimeout(() => {
      console.info(this.echartbox1.current.offsetHeight);
      // 延迟饼图的加载,就是让图表铺满所设置的尺寸
      this.setChart();
    }, 0);
  }
  • 自适应
    在这里插入图片描述
// 监听窗口resize
  onresize = () => {
    // 使echart图表随窗口的大小进行变化
    this.echartInit1 && this.echartInit1.resize();
  }

在这里插入图片描述

// 设置饼图
  setChart = () => {
    if (!this.echartInit1) this.echartInit1 = echarts.init(this.echartbox1.current);

    this.echartInit1.setOption(this.eo1());
    this.echartInit1.resize();
  }
  • 图表的配置项
 // 图表的配置项
  eo1 = () => {
    const lgdata = [
      { name: "100及以下", icon: "roundRect" },
      { name: "100-300(含)", icon: "roundRect" },
      { name: "300-600(含)", icon: "roundRect" },
      { name: "600以上", icon: "roundRect" },
    ];
    let options = {
      color: ["#1676fe", "#FAB20C ", "#FA6119", "#9F51F0"],
      tooltip: {
        trigger: "item",
        fommatter: "{a} : {b}",
        confine: true,//将此权限打开后tooltip将不再溢出
      },
      // 图列组件
      legend: {
        data: lgdata,
        // 设置图例的位置
        left: "65%",
        top: "25%",
        orient: "vertical",
        itemWidth: 10,//图例图形的宽度
        itemHeight: 10,
      },
      series: {
        type: "pie",
        // 饼图的位置
        center: ["35%", "50%"],
        // 饼图的大小
        radius: ["0", "75%"],
        data: [{ name: "100及以下", value: 50 },
        { name: "100-300(含)", value: 120 },
        { name: "300-600(含)", value: 350 },
        { name: "600以上", value: 670 },],
        label: {
          normal: {
            show: false,
          },
          emphasis: {
            show: false,
          },
        },
      }
    };
    return options;
  }

通过上面的设置,实现了我想要的效果。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ECharts是一个基于JavaScript的开源可视化库,用于构建交互式的图表和数据可视化。要实现ECharts横向高度自适应的效果,可以按照以下步骤进行操作: 1. 在HTML文件中引入ECharts的库文件: ```html <script src="https://cdn.jsdelivr.net/npm/echarts@5.2.0/dist/echarts.min.js"></script> ``` 2. 创建一个具有固定高度的容器元素,用于容纳图表: ```html <div id="chartContainer" style="height: 400px;"></div> ``` 这里设置了一个高度为400px的容器,你可以根据实际需求进行调整。 3. 在JavaScript代码中初始化并配置ECharts图表,并将其绑定到容器元素上: ```javascript // 获取容器元素 var chartContainer = document.getElementById('chartContainer'); // 初始化图表 var chart = echarts.init(chartContainer); // 配置图表选项 var option = { // 图表的配置项... }; // 设置图表的宽度和高度为容器元素的实际宽度和高度 chart.resize(); // 使用配置项显示图表 chart.setOption(option); ``` 在上述代码中,通过调用`chart.resize()`方法可以使图表自适应容器的宽度和高度。 4. 根据需要调整图表的样式和配置项,例如设置图表的宽度为100%以横向父容器: ```javascript var option = { // 图表的配置项... grid: { left: '0%', right: '0%', bottom: '0%', top: '0%', containLabel: true } }; ``` 在上述代码中,通过设置`grid`的`left`、`right`、`bottom`和`top`属性为百分比值,可以使图表横向父容器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值