使用pylab从列表中绘制直方图

时间:2015-12-23 04:24:43

标签: python matplotlib histogram

我正在努力通过pylab模块绘制一个带有两个列表的直方图(我需要使用它)

第一个列表 totalTime ,填充了程序中计算的7个浮点值。

第二个列表 raceTrack ,填充了7个字符串值,表示赛道的名称。

totalTime [0]是在raceTrack [0]上花费的时间,totalTime [3]是在raceTrack [3]上花费的时间等...

我整理了数组并将值四舍五入到小数点后2位

totalTimes.sort()
myFormattedTotalTimes = ['%.2f' % elem for elem in totalTimes]

myFormattedTotalTimes '输出(当输入的值为100时)

['68.17', '71.43', '71.53', '84.23', '84.55', '87.20', '102.85']

我需要使用列表中的值来创建直方图,其中x轴将显示赛道的名称,y轴将显示该特定轨道上的时间。 Ive made quickly an excel histogram to help understand.

I have attempted but to no avail

for i in range (7):
    pylab.hist([myFormattedTotalTimes[i]],7,[0,120])
pylab.show()

任何帮助都会非常感激,我很遗憾。

1 个答案:

答案 0 :(得分:0)

正如@John Doe所说,我想你想要一个条形图。在matplotlib example中,以下内容可以满足您的需求,

import matplotlib.pyplot as plt
import numpy as np

myFormattedTotalTimes = ['68.17', '71.43', '71.53', '84.23', '84.55', '87.20', '102.85']

#Setup track names
raceTrack = ["track " + str(i+1) for i in range(7)]

#Convert to float
racetime = [float(i) for i in myFormattedTotalTimes]

#Plot a bar chart (not a histogram)
width = 0.35       # the width of the bars
ind = np.arange(7)     #Bar indices

fig, ax = plt.subplots(1,1)
ax.bar(ind,racetime, width)
ax.set_xticks(ind + width)
ax.set_xticklabels(raceTrack)
plt.show()

看起来像, enter image description here