Python 根据字符权重为字符串着色

Python 根据字符权重为字符串着色,python,matplotlib,Python,Matplotlib,我有一个类似python的字符串 text=你好,世界 然后我有一个列表,其中包含字符串中每个字符的权重 权重=[25,23,51,60,11,32,34,95,4,3,55]。 现在我想得到一个显示字符串的图形,它的背景颜色根据字符的权重而定,就像一个显示字符权重的彩色贴图一样。 如何使用Python matplotlib实现这一点 我应该看起来像这样: 字符也可以位于颜色字段下方,作为一种标签 解决方案: 我现在用下面的方法工作 fig, ax = plt.subplots() plt.

我有一个类似python的字符串 text=你好,世界 然后我有一个列表,其中包含字符串中每个字符的权重 权重=[25,23,51,60,11,32,34,95,4,3,55]。 现在我想得到一个显示字符串的图形,它的背景颜色根据字符的权重而定,就像一个显示字符权重的彩色贴图一样。 如何使用Python matplotlib实现这一点

我应该看起来像这样:

字符也可以位于颜色字段下方,作为一种标签

解决方案: 我现在用下面的方法工作

fig, ax = plt.subplots()

plt.set_cmap(plt.cm.autumn) 

weights = [[1, 6, 3, 10, 8, 3, 2, 5]]
ax.imshow(weights, interpolation='none')
ax.text(0, 0, "h")
ax.text(1, 0, "e")
ax.text(2, 0, "l")
ax.text(3, 0, "l")
ax.text(4, 0, "o")
ax.text(5, 0, " ")
ax.text(5, 0, "w")
结果:

这是我在地图上找到的一段代码,它使用选定颜色贴图的连续颜色进行打印

import matplotlib.pyplot as plt    
import numpy as np
fig, ax = plt.subplots()
cmap = plt.get_cmap('jet_r') #or other color map
multiplicators = np.linspace(1,10)
x = np.linspace(1,10)
for idx, item in enumerate(multiplicators):
    color = cmap(idx/len(multiplicators))
    ax.plot(x, x*item, color=color)
以类似的方式,你可以通过以下方式对你的体重进行颜色编码

color = cmap(word_weight/max_weight)

不确定这是否正是您想要的

谢谢您的回答,但这不是我想要的。我在问题中添加了一幅图片,以使问题更加清楚。当然,这并不是你问题的完整解决方案。它只显示了如何从颜色贴图中为每个权重获取颜色的方法。然后,您可以使用plt.textx、y、H、backgroundcolor=color打印每个字母。