from pyecharts.charts import WordCloud words=list(total_data['名称'].values) num=list(total_data['名称'].value_counts()) data=[k for k in zip(words,num)] data=[(i,str(j)) for i,j in data] wordcloud=(WordCloud() .add(data_pair=data,word_size_range=[10,100]) .set_global_opts(title_opts=opts.TitleOpts( title='项目名称词云图',title_textstyle_opts= opts.TextStyleOpts(font_size=23)), tooltip_opts=opts.TooltipOpts (is_show=True)) ) wordcloud.render_notebook()
时间: 2024-01-24 09:04:24 浏览: 77
这段代码使用了 Pyecharts 库绘制了一个项目名称的词云图。以下是一些可以进行优化的建议:
1. 引入模块时可以只引入需要的部分,例如这里只需要引入 `WordCloud` 和 `opts`。
2. 将数据处理的部分放在一个函数中,可以提高代码的可复用性。
3. 使用 `set_series_opts()` 函数来设置词云图的样式和配置,可以更加方便地控制词云图的各个元素。
4. 使用 `render()` 函数来保存图像,而不是使用 `render_notebook()` 函数直接在 Jupyter Notebook 中显示图像,这样可以更加方便地保存图像,并且可以在其他软件中使用。
下面是优化后的代码:
```python
from pyecharts.charts import WordCloud
from pyecharts import options as opts
# 处理数据
def process_data(data):
words = list(data['名称'].values)
num = list(data['名称'].value_counts())
data = [(i, str(j)) for i, j in zip(words, num)]
return data
data = process_data(total_data)
# 绘制词云图
wordcloud = (WordCloud()
.add(series_name="名称",
data_pair=data,
word_size_range=[10, 100])
.set_global_opts(title_opts=opts.TitleOpts(
title='项目名称词云图',
title_textstyle_opts=opts.TextStyleOpts(
font_size=23)),
tooltip_opts=opts.TooltipOpts(is_show=True))
.set_series_opts(label_opts=opts.LabelOpts(
font_size=12,
formatter="{b}:{c}"))
)
# 保存图像
wordcloud.render("wordcloud.html")
```
这样,代码更加简洁易读,并且具有更好的可复用性和可维护性。
阅读全文