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

王林
Lepaskan: 2023-04-13 12:28:02
ke hadapan
1518 orang telah melayarinya

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
Salin selepas log masuk

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","")
Salin selepas log masuk

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

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

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")
Salin selepas log masuk
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")
Salin selepas log masuk


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)
Salin selepas log masuk
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")
Salin selepas log masuk


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',
)
Salin selepas log masuk

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)
Salin selepas log masuk


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")
Salin selepas log masuk


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!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!