当前位置:首页 > JavaScript

js实现云图

2026-02-02 01:44:26JavaScript

使用WordCloud库生成云图

WordCloud是一个流行的JavaScript库,用于生成词云。安装可以通过npm或直接引入CDN链接。

// 安装
npm install wordcloud
<!-- CDN引入 -->
<script src="https://cdn.jsdelivr.net/npm/wordcloud@1.2.2/src/wordcloud2.min.js"></script>

基本用法示例

创建一个简单的词云需要准备数据和配置选项。数据格式为二维数组,每个子数组包含词语和权重。

const words = [
  ['JavaScript', 30],
  ['Python', 25],
  ['Java', 20],
  ['C++', 15],
  ['Ruby', 10]
];

WordCloud(document.getElementById('wordcloud'), {
  list: words,
  gridSize: 10,
  weightFactor: 5,
  color: 'random-dark'
});

自定义样式和形状

通过配置对象可以调整云图的形状、颜色和布局。shape参数支持圆形、心形等预设形状,或使用自定义图像。

WordCloud(document.getElementById('wordcloud'), {
  list: words,
  shape: 'circle',
  backgroundColor: '#f0f0f0',
  color: function () {
    return '#' + Math.floor(Math.random() * 0xFFFFFF).toString(16);
  }
});

响应式设计处理

为了使云图适应不同屏幕尺寸,需要监听窗口变化事件并重新绘制。

function drawWordCloud() {
  const width = window.innerWidth * 0.8;
  const height = window.innerHeight * 0.6;
  WordCloud(document.getElementById('wordcloud'), {
    list: words,
    gridSize: Math.round(width / 100),
    weightFactor: Math.round(height / 50),
    minSize: 8
  });
}

window.addEventListener('resize', drawWordCloud);
drawWordCloud();

从API获取动态数据

实际应用中常需要从后端API获取词频数据。以下示例展示如何使用fetch获取数据并更新云图。

js实现云图

async function loadWordCloud() {
  try {
    const response = await fetch('/api/word-frequency');
    const data = await response.json();
    WordCloud(document.getElementById('wordcloud'), {
      list: data,
      backgroundColor: '#fff',
      rotateRatio: 0.5
    });
  } catch (error) {
    console.error('数据加载失败:', error);
  }
}

注意事项

  • 性能优化:大数据集时应适当调整gridSize和weightFactor参数
  • 浏览器兼容性:某些配置在移动端可能需要特殊处理
  • 交互功能:可通过添加click事件实现词语点击交互
document.getElementById('wordcloud').addEventListener('wordcloudclick', function(ev) {
  console.log('点击词语:', ev.detail.text);
});

标签: 云图js
分享给朋友:

相关文章

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js 实现全选

js 实现全选

实现全选功能的方法 使用 JavaScript 实现全选功能通常需要操作复选框(checkbox)的状态。以下是几种常见的实现方式。 通过 DOM 操作实现全选 // 获取全选复选框和子复选…