# 怎么用Pyecharts制作詞云圖
## 一、Pyecharts簡介
Pyecharts是一個基于Echarts的Python可視化庫,能夠生成多種交互式圖表。相較于Matplotlib等傳統庫,Pyecharts具有以下優勢:
- 豐富的圖表類型(30+種)
- 高度可定制的交互功能
- 支持Web環境直接渲染
- 簡潔的API設計
詞云圖(Word Cloud)作為文本數據可視化的重要形式,在Pyecharts中通過`WordCloud`類實現。
## 二、環境準備
### 1. 安裝Pyecharts
```bash
pip install pyecharts
import pyecharts
print(pyecharts.__version__)
如需輸出為HTML或圖片,需安裝:
pip install pyecharts-snapshot # 導出圖片
pip install jinja2 # HTML模板支持
詞云數據格式為[(word1, count1), (word2, count2), ...]
的列表:
data = [
("Python", 100),
("數據分析", 85),
("機器學習", 70),
("可視化", 60),
("人工智能", 50),
("深度學習", 45)
]
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") # 生成HTML文件
word_size_range
: 控制單詞顯示大小的范圍shape
: 詞云形狀(默認為圓形)rotate_step
: 單詞旋轉角度間隔使用mask_image
參數指定形狀圖片(需配合pillow
庫):
wc = (
WordCloud()
.add("", data,
word_size_range=[20, 100],
shape="diamond", # 內置形狀
mask_image="python-logo.png") # 自定義圖片
)
.add("", data,
word_gap=20,
textstyle_opts=opts.TextStyleOpts(
color=["#FF0000", "#00FF00", "#0000FF"] # 顏色循環列表
))
.set_global_opts(
tooltip_opts=opts.TooltipOpts(is_show=True),
toolbox_opts=opts.ToolboxOpts(is_show=True) # 顯示工具欄
)
import jieba
from collections import Counter
text = "Python是一種廣泛使用的高級編程語言..." # 長文本
words = jieba.lcut(text)
word_counts = Counter(words).most_common(50)
wc = (
WordCloud()
.add("", word_counts,
word_size_range=[15, 80],
shape="cardioid",
textstyle_opts=opts.TextStyleOpts(font_family="Microsoft YaHei"))
.set_global_opts(
title_opts=opts.TitleOpts(title="Python技術熱詞分析"),
tooltip_opts=opts.TooltipOpts(formatter=": {c}")
)
)
wc.render("tech_wordcloud.html")
word_gap
控制單詞間距background_color="#F5F5F5"
解決方案:
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "https://cdn.jsdelivr.net/npm/echarts@latest/dist/"
# 或在add方法中指定字體
textstyle_opts=opts.TextStyleOpts(font_family="SimHei")
確保已安裝:
pip install snapshot_selenium
.add(series_name="",
data_pair=data,
is_draw_out_of_bound=False, # 不繪制超出畫布的詞語
layout_algorithm="squarified")
from flask import Flask
app = Flask(__name__)
@app.route("/")
def show_wordcloud():
return wc.render_embed() # 嵌入網頁
import random
def random_data():
return [("詞"+str(i), random.randint(1,100)) for i in range(20)]
wc.add("", random_data(), is_animation=True) # 啟用動畫
Pyecharts制作詞云圖的核心步驟:
1. 準備(詞語, 權重)
格式的數據
2. 創建WordCloud
實例
3. 通過add()
方法配置樣式
4. 使用render()
輸出結果
進階技巧:
- 使用Page()
組合多個圖表
- 通過Overlap()
實現圖表疊加
- 自定義主題樣式(ThemeType
)
通過本文介紹的方法,您可以快速創建專業級的詞云可視化效果。Pyecharts的豐富API還能滿足更多個性化需求,建議參考官方文檔探索更多可能性。
官方文檔鏈接:https://pyecharts.org “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。