2014-03-26 42 views
0

我想繪製兩個列表,其中我的TTS列表是卷列表的百分比。因此,例如,當TTS是100時,這是在兩個列表之間的相同位置中列出的15的100%或任何值。我不知道如何去做這個和一個新手程序員。我試圖使用列表和做對方的百分比遇到了麻煩,我應該如何處理這個問題?謝謝!一個列表中的另一個百分比

import numpy as np 
import matplotlib.pyplot as plt 

def percentage(percent, whole): 
    return (percent * whole)/100.0 

Volume = [0,15,15,15,20,25,30,35,40,50,55,60,65,70,75,80,85,90,95,100] 
TTS = [0,100,100,100,100,100,100,100,92,86,83,80,78,77,74,73,72,72,68,65] 

plt.xticks([0,10,20,30,40,50,60,70,80,90,100]) 
plt.yticks([0,10,20,30,40,50,60,70,80,90,100]) 

plt.plot(TTS, 'c', linewidth=3.0, label='TTS') 
plt.plot(Volume, 'r', linewidth=3.0, label='Volume') 

plt.legend() 
plt.grid(True) 
plt.show() 
+0

什麼是你想要出現在劇情中? – wich

+0

當我繪製我所擁有的內容時,音量看起來正確,但是TTS拍攝了音量,然後回落,不應該這樣做。我試圖將TTS實際佔音量的百分比。 – Michael

+0

那麼,這正是我在我的答案 – wich

回答

0

你的意思是要繪製如下:

plt.plot([percentage(tts, vol) for vol, tts in zip(Volume, TTS)]) 
+0

這是比較暖和的,但是我希望TTS在音量爲40時開始向下,TTS現在是92的40%,然後隨着音量的繼續,TTS繼續向下。 – Michael

+0

我認爲你的期望值是關閉的:40%的92%仍然超過35%的100%,所以當然情節仍然會上升。 – wich

0

使用地圖:

def percentage(percent, whole): 
    return (percent * whole)/100.0 

Volume = [0,15,15,15,20,25,30,35,40,50,55,60,65,70,75,80,85,90,95,100] 
TTS = [0,100,100,100,100,100,100,100,92,86,83,80,78,77,74,73,72,72,68,65] 

print map(percentage,Volume,TTS) 

輸出:音量和TTS的

[0.0, 15.0, 15.0, 15.0, 20.0, 25.0, 30.0, 35.0, 36.8, 43.0, 45.65, 48.0, 50.7, 53.9, 55.5, 58.4, 61.2, 64.8, 64.6, 65.0] 

元素傳遞給相應位置的百分比函數,迴歸n的百分比值存儲爲結果列表。例如,15中的百分比是15,同樣,72中的90%是64.8(第3個元素)

+0

這是有用的和一個偉大的功能知道。它的價值在於它的輸出並不是在繪製我後來的圖片,所以也許我錯誤地問了我的問題,成爲新手問題的一部分。例如,15的百分比是15(這是偉大的,我試圖繪製),但我不想將另一個列表轉換爲百分比,其中72的百分比是64.8(第三最後一個元素)。我想表明,在95我在95%的72%。 – Michael

+0

你的意思是說:「我想表明在90我在95%的72%」? – user3

+0

當體積是90時,TTS是90的72%。當體積是95時,它是95的68%。不知道如何解釋它。 – Michael

相關問題