vue3中echarts环形图偏移,文字无法居中+饼图配置浮框文字

自定义饼图悬浮框文字 代码位置:legend下的每一项的formatter

环形图偏移 文字居中 代码位置:graphic

  const data = [
    {
      value: 100,
      name: "张三",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 20,
      name: "李四",
      title: "1111",
      datas: [{ aud: "444" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 30,
      name: "王五",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 40,
      name: "赵六",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 50,
      name: "老王",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 60,
      name: "老王1",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 70,
      name: "老王2",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 80,
      name: "老王3",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 200,
      name: "老王4",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 100,
      name: "老王5",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 110,
      name: "老王6",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 120,
      name: "老王7",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 130,
      name: "老王8",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
    {
      value: 140,
      name: "老王9",
      title: "1111",
      datas: [{ aud: "333" }, { audR: "333" }, { com: "123123" }],
    },
  ];
  chart2 = echarts.init(chart2Ref.value);
  // 配置数据
  const option = {
    title: {
      left: "10%",
      text: "",
      radius: ["40%", "60%"],
      center: ["25%", "50%"],
      subtext: "",
    },
    tooltip: {
      trigger: "item",
      formatter(data) {
        return `程序号:${data.name}</br>项目完成数: ${data.data.datas[2].com}</br>审核率: ${data.data.datas[0].aud}</br>审核成功率: ${data.data.datas[1].audR}`;
      },
    },

    legend: [
      {
        orient: "vertical",
        x: "65%",
        y: "center",
        bottom: "10",
        itemGap: 20, // 设置图例图形的宽
        data: ["张三", "李四", "王五", "赵六", "老王", "老王1", "老王2"],
        formatter(name) {
          let target, percentage;
          for (let i = 0; i < data.length; i++) {
            if (data[i].name === name) {
              target = data[i].value;
            }
          }
          const arr = [`${name} `, ` ${target}`];
          return arr.join(" ");
        },
      },
      {
        orient: "vertical",
        x: "80%",
        y: "center",
        bottom: "10",
        itemGap: 20, // 设置图例图形的高
        center: ["50%", "50%"],
        data: ["老王3", "老王4", "老王5", "老王6", "老王7", "老王8", "老王9"],
        formatter(name) {
          let target, percentage;
          for (let i = 0; i < data.length; i++) {
            if (data[i].name === name) {
              target = data[i].value;
            }
          }
          const arr = [`${name} `, ` ${target}`];
          return arr.join(" ");
        },
      },
    ],
    series: [
      {
        name: "访问来源",
        type: "pie",
        radius: ["40%", "60%"],
        center: ["25%", "50%"],
        text: "省市公司",
        data,
        label: {
          normal: {
            position: "inner",
            show: false,
          },
        },
      },
    ],
    graphic: [
      {
        type: "group",
        left: "25%",
        top: "center",
        bounding: "raw",
        children: [
          {
            type: "text",
            style: {
              text: `合计`,
              fontSize: 18,
              textAlign: "center",
              textVerticalAlign: "bottom",
            },
          },
          {
            type: "text",
            style: {
              text: `${data.reduce((total, item) => total + item.value, 0)}`,
              textAlign: "center",
              textVerticalAlign: "top",
              fontSize: 30,
            },
          },
        ],
      },
    ],
  };
  // 传入数据
  chart2.setOption(option);

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Scrapy 或 PySpider 爬虫框架,你可以更加高效地获取上述房价信息。以下是 Scrapy 爬取房天下二手房信息的示例代码: 1. 创建 Scrapy 项目 在命令行中执行以下命令,创建一个名为 fangtianxia 的 Scrapy 项目: ``` scrapy startproject fangtianxia ``` 2. 创建 Spider 在项目中创建一个名为 esf 的 Spider,用于爬取二手房信息。在 `fangtianxia/spiders` 目录下创建一个名为 `esf.py` 的文件,添加如下代码: ```python import scrapy class EsfSpider(scrapy.Spider): name = "esf" allowed_domains = ["fang.com"] start_urls = ["https://esf.fang.com/house/i3{}/"] def start_requests(self): for url in self.start_urls: for i in range(1, 21): yield scrapy.Request(url.format(i), callback=self.parse, dont_filter=True) def parse(self, response): # 解析房源信息 house_list = response.css(".shop_list .floatl") for house in house_list: title = house.css("p.title a::text").get().strip() link = house.css("p.title a::attr(href)").get() price = house.css(".price_right span::text").get().strip() layout = house.css(".tel_shop::text").get().strip() area = house.css(".area_right span::text").get().strip() floor = house.css(".flood .floatl::text").get().strip() region = house.css(".add_shop a::text").get().strip() address = house.css(".add_shop span::text").get().strip() # 将数据保存到文件或数据库中 yield { "title": title, "link": link, "price": price, "layout": layout, "area": area, "floor": floor, "region": region, "address": address, } ``` 在这个 Spider 中,我们定义了一个名为 EsfSpider 的 Spider,它爬取房天下二手房信息的前20页数据。在 start_requests 方法中,我们使用 `yield` 关键字生成了20个 HTTP 请求,分别对应前20页数据的 URL。在 parse 方法中,我们使用 CSS Selector 提取了房源信息的各个字段,并使用 `yield` 关键字将数据保存到字典中。 3. 运行 Spider 在命令行中执行以下命令,运行 Spider: ``` scrapy crawl esf -o esf.csv ``` 这个命令将会运行名为 esf 的 Spider,并将爬取到的数据保存到一个名为 esf.csv 的 CSV 文件中。你可以在 Spider 中修改数据的保存方式,例如保存到数据库中。同样的方法也可以使用 PySpider 爬虫框架来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值