echart 热搜词云(字符云)的制作以及遇到颜色不会随即变得bug

1.首先要引入字符云的js文件或者下载插件

进入echart 官网 ,点下载,扩展插件,找到字符云点进去
在这里插入图片描述
在这里插入图片描述


 第一种  在vscode npm i echarts-wordcloud
      引入  import "echarts-wordcloud";
第二种 在echart 扩展插件 字符云里下载文件 里面有 js
然后在需要得地方引入js就可以了
// 热搜云词
export function hotTerms(params) {
  // 基于准备好的dom,初始化echarts实例
  var myChart = echarts.init(document.getElementById(params.dom));

  var option = {
    series: [
      {
        type: "wordCloud",
        gridSize: 20, //字体分布的密集程度
        sizeRange: [12, 50], //字体大小的范围
        rotationRange: [-90, 90], //字体旋转的角度
        shape: "pentagon",
        /*
        绘制词云的形状, 值为回调函数 或 关键字, 默认 circle
        关键字:
        circle  圆形
        cardioid 心形
        diamond  菱形 正方形
        triangle-forward, triangle  三角形  
        pentagon 五边形
        star 星形
        */
        textStyle: {   //随机颜色
          color: function() {
            return (
              "rgb(" +
              [
                Math.round(Math.random() * 160),
                Math.round(Math.random() * 160),
                Math.round(Math.random() * 160),
              ].join(",") +
              ")"
            );
          },
          emphasis: {   //移入后的效果
            shadowBlur: 10,
            shadowColor: "#333",
          },
        },
        data: params.wordData,  //数据
      },
    ],
  };

  // 绘制图表
  myChart.setOption(option);
  window.addEventListener("resize", function() {
    myChart.resize();
  });
}

shape :词云的形状,默认是 circle,可选的参数有cardioid 、 diamond 、 triangle-forward 、 triangle 、 star。
left top right bottom :词云的位置,默认是 center center。
width height :词云的宽高,默认是 75% 80%。
sizeRange :词云的文字字号范围,默认是[12, 60] ,词云会根据提供原始数据的 value 对文字的字号进行渲染。以默认值为例, value 最小的渲染为 12px ,最大的渲染为 60px ,中间的值按比例计算相应的数值。
rotationRange rotationStep :词云中文字的角度,词云中的文字会随机的在 rotationRange 范围内旋转角度,渲染的梯度就是 rotationStep ,这个值越小,词云里出现的角度种类就越多。以上面参数为例,可能旋转的角度就是 -90 -45 0 45 90 。
gridSize :词云中每个词的间距。
drawOutOfBound :是否允许词云在边界外渲染,直接使用默认参数 false 就可以,否则容易造成词重叠。
extStyle :词云中文字的样式, normal 是初始的样式, emphasis 是鼠标移到文字上的样式。
  

2.完成后的效果

在这里插入图片描述

3.遇到颜色不会随即便的问题

开始时我textStyle是这样的,然后字体颜色不会生效

textStyle: {
              normal: {
       
              color: function () {
                  return 'rgb(' + [
                    Math.round(Math.random() * 250),
                    Math.round(Math.random() * 250),
                    Math.round(Math.random() * 250)
                  ].join(',') + ')';
                }
              }
            },

后面发现echart 版本的问题 实际上新版本的echarts的设置都不需要用到normal字段,例如柱状图、饼状图的的itemStyle等等

 textStyle: {   //随机颜色
          color: function() {
            return (
              "rgb(" +
              [
                Math.round(Math.random() * 160),
                Math.round(Math.random() * 160),
                Math.round(Math.random() * 160),
              ].join(",") +
              ")"
            );
          },
          

去掉normal字体颜色生效了

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,您需要使用 Python 编程语言来实现这个功能。首先,您需要安装一些必要的库,其中包括 `bs4`、`wordcloud` 和 `jieba`。您可以使用以下命令来安装这些库: ``` pip install bs4 wordcloud jieba ``` 接下来,您需要使用 BeautifulSoup 库来从百度页面中提取关键词。以下是示例代码: ```python import requests from bs4 import BeautifulSoup # 获取百度页面的 HTML url = 'https://www.baidu.com/s?tn=SE_baiduhomet8_jmjb7mjw&cl=3&wd=%E7%83%AD%E6%90%9C%E6%A6%9C' html = requests.get(url).text # 使用 BeautifulSoup 解析 HTML 并提取关键词 soup = BeautifulSoup(html, 'html.parser') hot_list = [] for item in soup.select('.c-gap-top-small .c-span21'): hot_list.append(item.text) ``` 接下来,您需要使用 jieba 库来对关键词进行分词,并将分词结果转换为字符串格式。以下是示例代码: ```python import jieba # 对关键词进行分词 text = ' '.join(jieba.cut(''.join(hot_list))) # 打印分词结果 print(text) ``` 最后,您可以使用 wordcloud 库来生成词云图。以下是示例代码: ```python from wordcloud import WordCloud import matplotlib.pyplot as plt # 生成词云图 wordcloud = WordCloud(background_color='white', width=800, height=600).generate(text) # 显示词云图 plt.imshow(wordcloud, interpolation='bilinear') plt.axis('off') plt.show() ``` 通过执行上述代码,您将可以生成一张基于百度关键词的词云图

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值