2016-03-02 74 views
-2

我有這樣 text = "hello world" 在python字符串,然後我具有含重量爲字符串 weights = [25,23,51,60,11,32,34,95,4,3,55]的每個字符的列表。 現在我想要得到一個顯示字符串的圖形,並根據字符的權重對它進行着色(例如,可視化角色權重的色彩圖)。 我該怎麼用Python(matplotlib)來做到這一點?根據字符權着色字符串

我應該類似於此: enter image description here

字符也可以是colorfields以下(作爲一種標籤)。

SOLUTION:

我得到它的工作方式如下現在

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") 

結果: enter image description here

回答

0

下面是一個代碼剪斷,我發現某處因此使用連續顏色爲繪圖選擇顏色圖。

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) 

不知道這是你在尋找什麼

+0

謝謝您的回答,但是這不是我在找什麼。我爲這個問題添加了一張圖片,使其更加清晰。 – jasmok

+0

當然,這不是您的問題的完整解決方案。它只顯示瞭如何從每個重量的顏色映射中獲取顏色。然後可以使用'plt.text(x,y,「H」,backgroundcolor = color)''來打印每個字母。 – MrCyclophil