# Pyecharts怎么生成词云图 ## 一、词云图简介 词云图(Word Cloud)是一种直观展示文本数据的可视化形式,通过字体大小、颜色等视觉元素突出显示高频词汇。在舆情分析、文本挖掘、用户画像等领域有广泛应用。 Pyecharts是基于ECharts的Python可视化库,支持30+种图表类型,其词云图功能通过`WordCloud`类实现,具有以下优势: - 支持中文显示 - 丰富的样式配置 - 交互式操作 - 多种形状选择 ## 二、环境准备 ### 1. 安装Pyecharts 推荐使用1.x以上版本: ```bash pip install pyecharts -U
如需导出为图片,需安装:
pip install pyecharts-snapshot
词云数据格式为[(word1, count1), (word2, count2),...]
的列表:
data = [ ("Python", 100), ("数据分析", 85), ("可视化", 70), ("机器学习", 65), ("人工智能", 60), ("深度学习", 55), ("Pyecharts", 50) ]
from pyecharts import options as opts from pyecharts.charts import WordCloud wc = ( WordCloud() .add("", data, word_size_range=[20, 100]) .set_global_opts(title_opts=opts.TitleOpts(title="基础词云图")) ) wc.render("basic_wordcloud.html")
关键参数说明: - word_size_range
: 控制最小/最大字体大小 - shape
: 默认为圆形,可选cardioid
(心形)、diamond
等
使用mask_image
参数指定形状图片(需黑白轮廓图):
wc = ( WordCloud() .add("", data, word_size_range=[20, 100], mask_image="python-logo.png") # 替换为实际图片路径 .set_global_opts(title_opts=opts.TitleOpts(title="自定义形状词云"))
通过textstyle_opts
控制文字样式:
.add("", data, textstyle_opts=opts.TextStyleOpts( color=["#c23531", "#2f4554", "#61a0a8", "#d48265"] ))
.add("", data, rotate_step=45) # 旋转角度间隔
.set_global_opts( tooltip_opts=opts.TooltipOpts(is_show=True), toolbox_opts=opts.ToolboxOpts( is_show=True, feature={ "saveAsImage": {}, "restore": {} } ) )
import jieba from collections import Counter text = """这里是你的新闻文本内容...""" words = jieba.lcut(text) word_counts = Counter(words).most_common(100) # 过滤停用词 stopwords = ["的", "了", "在"] data = [(w, c) for w, c in word_counts if len(w) > 1 and w not in stopwords]
wc = ( WordCloud() .add("新闻热词", data, shape="diamond", word_gap=10, word_size_range=[15, 80], mask_image="news.png") .set_global_opts( title_opts=opts.TitleOpts( title="新闻关键词分析", subtitle="基于2023年1-6月数据" ), tooltip_opts=opts.TooltipOpts( formatter="{b}: {c}次出现" ) ) ) wc.render("news_wordcloud.html")
确保在代码开头设置:
from pyecharts.globals import CurrentConfig CurrentConfig.ONLINE_HOST = "https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/"
检查是否安装pyecharts-snapshot
,导出代码:
from pyecharts.render import make_snapshot make_snapshot("snapshot.html", wc.render(), "output.png")
enable_animation=False
关闭动画效果from flask import Flask app = Flask(__name__) @app.route("/wordcloud") def show_wordcloud(): return wc.render_embed()
import random def random_update(): for item in data: item[1] += random.randint(0, 10) wc.update_options(series=[{"data": data}])
推荐使用WordArt.com生成形状模板
Pyecharts的词云功能既适合快速原型开发,也能满足专业可视化需求。通过本文介绍的方法,你可以: 1. 快速生成基础词云 2. 实现高级定制效果 3. 解决常见问题 4. 应用到实际业务场景
建议结合官方文档(pyecharts.org)探索更多可能性。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。