一个列出另一个的百分比

时间:2014-03-26 15:10:35

标签: python list graph plot percentage

我正在尝试绘制两个列表,其中我的TTS列表是Volume列表的百分比。因此,例如,当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()

2 个答案:

答案 0 :(得分:0)

您的意思是想要绘制以下内容:

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

答案 1 :(得分: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)

输出:

[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]

Volume和TTS的元素传递给相应位置的百分比函数,百分比的返回值存储为结果列表。例如,15的百分之十是15,同样72的72%是64.8(最后的第3个元素)