Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan Python untuk melukis beberapa gambar rajah awan perkataan, yang mengagumkan semua orang

Menggunakan Python untuk melukis beberapa gambar rajah awan perkataan, yang mengagumkan semua orang

王林
王林ke hadapan
2023-04-13 12:28:021507semak imbas

Menggunakan Python untuk melukis beberapa gambar rajah awan perkataan, yang mengagumkan semua orang

Dalam carta visualisasi data, aplikasi carta awan perkataan boleh dilihat di mana-mana sahaja. Ia biasanya mengekstrak kekerapan perkataan daripada sekeping teks input, dan kemudian memaparkan perkataan frekuensi tinggi secara tertumpu mengikut kekerapan perkataan Ia adalah mudah, intuitif dan cekap Hari ini saya akan berkongsi cara melukis awan perkataan yang indah graf dalam Python.

Ujian kecil kemahiran

Mari cuba lukis graf awan perkataan mudah dahulu, menggunakan modul wordcloud dalam Python untuk melukisnya,

import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt

Kami mengimport kandungan teks dan mengalih keluar pemisah baris dan ruang Kodnya adalah seperti berikut:

text = open(r"明朝那些事儿.txt",encoding='utf8').read()
text = text.replace('n',"").replace("u3000","")

Kami perlu membahagikannya kepada perkataan satu demi satu gunakan modul jieba, kod Seperti berikut:

text_cut = jieba.lcut(text)
# 将分好的词用某个符号分割开连成字符串
text_cut = ' '.join(text_cut)

Sudah tentu, mungkin terdapat banyak kandungan yang tidak relevan yang tidak perlu kita lihat dalam keputusan pada masa ini, kita perlu gunakan perkataan henti, dan kami boleh membinanya sendiri , atau anda boleh terus menggunakan senarai kata henti yang telah dibina oleh orang lain Kod ini adalah seperti berikut 🎜>Berikut ialah kod teras untuk melukis carta awan perkataan.

stop_words = open(r"常见中文停用词表.txt").read().split("n")
output

word_cloud = WordCloud(font_path="simsun.ttc",# 设置词云字体
background_color="white", # 词云图的背景颜色
stopwords=stop_words) # 去掉的停词
word_cloud.generate(text_cut)
word_cloud.to_file("1.png")


Sudah tentu awan perkataan yang sangat mudah itu, kita boleh menambah imej latar belakang padanya. seperti gambar di bawah,

Menggunakan Python untuk melukis beberapa gambar rajah awan perkataan, yang mengagumkan semua orang


Kod utama yang perlu ditambah adalah seperti berikut:

Menggunakan Python untuk melukis beberapa gambar rajah awan perkataan, yang mengagumkan semua orang

Kemudian tambah parameter mask dalam WorCloud

background = Image.open(r"5.png")
graph = np.array(background)
output

# 使用WordCloud生成词云
word_cloud = WordCloud(font_path="simsun.ttc",# 设置词云字体
background_color="white", # 词云图的背景颜色
stopwords=stop_words, # 去掉的停词
mask=graph)
word_cloud.generate(text_cut)
word_cloud.to_file("1.png")


Pengoptimuman mendalam

Menggunakan Python untuk melukis beberapa gambar rajah awan perkataan, yang mengagumkan semua orang

Selain itu, terdapat modul lain stylecloud The graf awan perkataan yang dilukis juga sangat keren, antaranya kami menggunakan fungsi berikut.


Beberapa parameter yang biasa digunakan ialah

gen_stylecloud(text=None,
icon_name='fas fa-flag',
colors=None,
palette='cartocolors.qualitative.Bold_5',
background_color="white",
max_font_size=200,
max_words=2000,
stopwords=True,
custom_stopwords=STOPWORDS,
output_name='stylecloud.png',
)

icon_name: bentuk perkataan cloud

max_font_size: saiz fon terbesar
  • max_words: bilangan maksimum perkataan yang boleh ditampung

  • stopwords: digunakan untuk menapis perkataan hentian biasa

  • custom_stopwords: jika ada self- perkataan henti yang dicipta Jadual boleh digunakan

  • palet: Palet

  • Mari cuba lukis carta awan perkataan Kodnya adalah seperti berikut:
output

stylecloud.gen_stylecloud(text=text_cut,
 palette='tableau.BlueRed_6',
 icon_name='fas fa-apple-alt',
 font_path=r'田英章楷书3500字.ttf',
 output_name='2.png',
 stopwords=True,
 custom_stopwords=stop_words)


Parameter palet digunakan sebagai palet dan boleh ditukar sewenang-wenangnya untuk rujukan khusus: https://jiffyclub.github. io/palettable/ laman web ini.

Menggunakan Python untuk melukis beberapa gambar rajah awan perkataan, yang mengagumkan semua orang

pyecharts


Akhir sekali, mari kita lihat cara menggunakan modul Pyecharts untuk melukis awan perkataan Kodnya adalah seperti berikut


output

from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
words = [
 ("皇帝", 10000),
 ("朱元璋", 6181),
 ("明朝", 4386),
 ("朝廷", 4055),
 ("明军", 2467),
 ("士兵", 2244),
 ("张居正", 1868),
 ("王守仁", 1281)
]
c = (
 WordCloud()
 .add("", words, word_size_range=[20, 100])
 .set_global_opts(title_opts=opts.TitleOpts(title="基本示例"))
 )
c.render("1.html")


Hasilnya lebih mudah sedikit, tetapi perlu diperhatikan di sini bahawa data yang dihantar oleh kaedah WordCloud() dalam pyecharts ialah perkataan yang ditentukan dan kekerapan kejadiannya , ini berbeza daripada operasi sebelumnya

Atas ialah kandungan terperinci Menggunakan Python untuk melukis beberapa gambar rajah awan perkataan, yang mengagumkan semua orang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam