我在python中有一个字符串
text = "hello world"
然后我有一个列表,其中包含字符串每个字符的权重
weights = [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")
答案 0 :(得分:0)
这是一个代码剪切,我在SO上找到了一个使用所选颜色映射的连续颜色进行绘图的代码。
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)
不确定这是否正是您正在寻找的