当前位置:首页 > 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>

基本用法示例

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

js实现云图

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参数支持圆形、心形等预设形状,或使用自定义图像。

js实现云图

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获取数据并更新云图。

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实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…