Bla*_* 21 -1 python plot matplotlib seaborn
我正在尝试生成类似于此图像的内容(图像取自此处)

我有文档的单词列表和标准化分数列表(假设为 0-1)。如何创建这样的热图(每个单词根据分数分配颜色)?我不知道从哪里开始,我不精通 matplotlib!
PS分数大多为0,是稀疏映射。
对此有很多解决方案。只要您可以使用软件(HTML、TeX/LaTex、使用 的 MS Word python-docx、LibreOffice 等)访问它,几乎任何呈现突出显示文本的内容都可以工作。HTML 可能是最简单、最通用且最通用的可交付成果。
作为示例,下面的一段代码将使用四种预设颜色之一随机突出显示大约 1:5 的单词。(我认为OP会有一个更好的计划来选择使用哪些单词和颜色。)
我在 Jupyter Notebook 中编写了此内容,因为它可以轻松显示输出。显示 html 的方法有很多(这是 html 的主要优点),但如果您不想使用 Jupyter Notebook,则可以省略导入IPython和display行。
import random
from IPython.core.display import display, HTML
data = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."""
def highlighter(word):
colors = ["#FF3333", "#DD9999", "#9999DD", '#3333FF']
i = random.randint(0, 18)
if i < len(colors):
color = colors[i]
word = '<span style="background-color:' +color+ '">' +word+ '</span>'
return word
text = ' '.join([highlighter(word) for word in data.split()])
display(HTML(text))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
574 次 |
| 最近记录: |