Echarts:简单词云图实现

这篇具有很好参考价值的文章主要介绍了Echarts:简单词云图实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Echarts是一个开源的可视化图表库,支持丰富的图表,官网中还有大量示例可以选择使用、参考。

其中比较好玩、有趣的是词云,词云就是用关键词组成的一朵云,更广泛的定义是,由关键词组成的任意一种图案均称为词云。因此,并不仅限于云朵的形状。

Echart之前有词云这个配置,只不过现在没有了。虽然没有词云,但是echarts提供了custom配置,可以自定义图表。我们就可以自己通过配置实现词云。

首先,创建一个容器元素用来存放图表。

<div id="wordcloud"></div>

然后设置样式

<style>
	#wordcloud{
		width:500px;
		height:500px;
	}
</style>

然后,使用该元素初始化echarts

const echartsInstance = echarts.init(document.getElementById('wordcloud'));

接下来,配置配置对象,使用echarts提供的属性值为custom的type字段进行配置,在custom类型下,需要声明renderItem函数,这个函数的作用是生成针对于每一个数据所配置的图案。

它会对data中的每一项数据都执行该函数,然后在函数进行处理后返回一个图形对象,根据图形对象显示出来。

returnItem函数接收两个参数params和api
params是一个保存了基本配置信息的对象,例如:dataIndex:表示该数据在data中的索引
api是一个拥有操作数据的基本方法的对象,常用方法有value():该方法获取当前数据项的数据即value值
Echarts:简单词云图实现

我们在renderItem中返回的是text类型的图像,该图像只显示文本,通过style对象中的text字段设置显示文本。除了显示的文本之外还可以设置字体、颜色等常见样式。

const data = [{
  name: 'hellp',
  value: 10
}, {
    name: '没有',
    value: 20
  }, {
    name: '不错',
    value: 16
  }, {
    name: '还行',
    value: 30
  }, {
    name: '屏幕',
    value: 40
  }];
const option = {
    xAxis:{
      show:false
    },
    yAxis:{
      show:false
    },
    series: [{
      type: 'custom',
      renderItem(params, api){
        const x = Math.floor(Math.random() * 500);
        const y = Math.floor(Math.random() * 500);
        const canvas = document.createElement('canvas');
        const ctx = canvas.getContext('2d');
        ctx.font = api.value(0)+'';
        const {width} =  ctx.measureText(data[params.dataIndex].name);
        return {
          type:'text',
          x:x+width,
          y,
          style:{
            text: data[params.dataIndex].name,
            fontSize:data[params.dataIndex].value
          }
        }
      },
      data: data
    }]
  };

最后,设置echartsInstance的配置

echartsInstance.setOption(option);

效果如下
Echarts:简单词云图实现
不过,比较简陋,我们可以对配置进行补充实现更好的效果。

补充后的配置如下,我们补充随机的字体颜色,至于坐标一时不好计算,以后会持续更新,能够让其在随机的情况下保持有序。

const option = {
    xAxis:{
      show:false
    },
    yAxis:{
      show:false
    },
    series: [{
      type: 'custom',
      renderItem(params, api){
        const x = Math.floor(Math.random() * 500);
        const y = Math.floor(Math.random() * 500);
        const canvas = document.createElement('canvas');
        const ctx = canvas.getContext('2d');
        ctx.font = api.value(0)+'';
        const {width} =  ctx.measureText(data[params.dataIndex].name);
        return {
          type:'text',
          x:x+width,
          y,
          style:{
            text: data[params.dataIndex].name,
            fontSize:data[params.dataIndex].value,
            fill: `rgba(${Math.floor(Math.random() * 256)},${Math.floor(Math.random() * 256)},${Math.floor(Math.random() * 256)}, ${Math.random()})`
          }
        }
      },
      data: data
    }]
  };

效果如下

Echarts:简单词云图实现文章来源地址https://www.toymoban.com/news/detail-439852.html

到了这里,关于Echarts:简单词云图实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • echarts实现一个3d效果柱形图

    思路是: 通过数组循环生成多个echarts实例盒子,生成的柱形图只有一条数据,是由多个图表设置 barGap: \\\'-100%\\\' 实现重叠,并通过设置柱形图中间颜色到边上颜色的渐变形成类似3d的视觉效果,实际每一个柱形图是由以下几个图表实现的:⛽️ 内层背景的body(bar) 内层背景的

    2024年02月15日
    浏览(47)
  • 简单聊聊Echarts伪3D地图实现的相关配置

    知识和技能真的是用进废退,还是得多实践,才不至于遗忘。 目录 前言 二、实现原理 三、从0开始实现 1.目录结构 2.地图JSON数据获取 3.具体实现,重头戏 3.一些常见问题的解决方法 总结 本文简单来聊一聊Echarts伪3D地图的实现,只分离出最底层的伪3D效果,删除了其余的上层

    2024年02月06日
    浏览(131)
  • 一个开源、免费在线数据建模、元数据管理平台,简单易用

    一、开源项目简介 ERD Online 是一个开源、免费在线数据建模、元数据管理平台。提供简单易用的元数据设计、关系图设计、SQL查询等功能,辅以版本、导入、导出、数据源、SQL解析、审计、团队协作等功能、方便我们快速、安全的管理数据库中的元数据。 使用AGPL-3.0开源协议

    2024年02月02日
    浏览(57)
  • 本地PHP搭建简单Imagewheel私人云图床,在外远程访问

    🔥 博客主页 : 小羊失眠啦 🔖 系列专栏 : C语言 、 Linux 🌥️ 每日语录 : 追逐影子的人,自己就是影子。 ❤️ 感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 云存储在前几

    2024年02月08日
    浏览(39)
  • 【搭建私人图床】本地PHP搭建简单Imagewheel云图床,在外远程访问

    云存储在前几年风头无两,云存储平台也如雨后春笋般冒出来。但是这两年风头退去云存储平台相继关闭,除了几个互联网大厂,其他平台都在苦苦支撑。而图床作为云存储的一个分支,更是所剩无几。但图床不仅能用来存储个人图片,也能作为网站图片的来源,想要拥有一

    2024年02月07日
    浏览(51)
  • 简单的用Python采集下微博评论,制作可视化词云图

    简单的用Python来获取微博评论,制作词云图。 环境使用 Python 3.8或以上版本即可 Pycharm 任意版本 模块使用   以上三个模块都需要安装,直接pip install 加上模块名安装即可。 一. 数据来源分析 明确需求: 明确采集的网站以及数据内容 - 网址: https://weibo.com/2803301701/NxcPMvW2l - 数据

    2024年02月04日
    浏览(44)
  • 本地PHP搭建简单Imagewheel私人云图床,在外远程访问——“cpolar内网穿透”

    云存储在前几年风头无两,云存储平台也如雨后春笋般冒出来。但是这两年风头退去云存储平台相继关闭,除了几个互联网大厂,其他平台都在苦苦支撑。而图床作为云存储的一个分支,更是所剩无几。但图床不仅能用来存储个人图片,也能作为网站图片的来源,想要拥有一

    2024年02月04日
    浏览(43)
  • DeepBI一个AI开源数据软件是如何简单几句话搞定数亿条数据分析

    重磅消息 : DeepBI 已经支持 Starrocks 了,几句话搞定 数亿条 数据分析已经实锤了!!! 传统数据分析就像是一座大山,压得人喘不过气。采集、存储、筛选、整合、人工预测、技术实现,每一步都如同攀登峭壁,艰难而耗时。而随着AI时代的到来, DeepBI 如同一股清流,简化

    2024年01月23日
    浏览(44)
  • 一个开源的大型语言模型LLaMA论文简单解读,LLaMA: Open and Efficient Foundation Language Models

    返回论文和资料目录 LLaMA 是 Meta AI 发布的包含 7B、13B、33B 和 65B 四种参数规模的基础语言模型集合,LLaMA-13B 仅以 1/10 规模的参数在多数的 benchmarks 上性能优于 GPT-3(175B),LLaMA-65B 与业内最好的模型 Chinchilla-70B 和 PaLM-540B 比较也具有竞争力。开源的代码在github上可以很方便获得

    2024年02月09日
    浏览(51)
  • C //练习 6-3 编写一个交叉引用程序,打印文档中所有单词的列表,并且每个单词还有一个列表,记录出现过该单词的行号。对the、and等非实义单词不予考虑。

    练习 6-3 编写一个交叉引用程序,打印文档中所有单词的列表,并且每个单词还有一个列表,记录出现过该单词的行号。对the、and等非实义单词不予考虑。 注意:代码在win32控制台运行,在不同的IDE环境下,有部分可能需要变更。 IDE工具:Visual Studio 2010   代码块:

    2024年01月19日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包