三、条形图和直方图

这个教程中我们会涉及条形图和直方图。我们先来看条形图:

  1. import matplotlib.pyplot as plt
  2. plt.bar([1,3,5,7,9],[5,2,7,8,2], label="Example one")
  3. plt.bar([2,4,6,8,10],[8,6,2,5,6], label="Example two", color='g')
  4. plt.legend()
  5. plt.xlabel('bar number')
  6. plt.ylabel('bar height')
  7. plt.title('Epic Graph\nAnother Line! Whoa')
  8. plt.show()

plt.bar为我们创建条形图。 如果你没有明确选择一种颜色,那么虽然做了多个图,所有的条看起来会一样。 这让我们有机会使用一个新的 Matplotlib 自定义选项。 你可以在任何类型的绘图中使用颜色,例如g为绿色,b为蓝色,r为红色,等等。 你还可以使用十六进制颜色代码,如#191970

三、条形图和直方图 - 图1

接下来,我们会讲解直方图。 直方图非常像条形图,倾向于通过将区段组合在一起来显示分布。 这个例子可能是年龄的分组,或测试的分数。 我们并不是显示每一组的年龄,而是按照 20 ~ 25,25 ~ 30… 等等来显示年龄。 这里有一个例子:

  1. import matplotlib.pyplot as plt
  2. population_ages = [22,55,62,45,21,22,34,42,42,4,99,102,110,120,121,122,130,111,115,112,80,75,65,54,44,43,42,48]
  3. bins = [0,10,20,30,40,50,60,70,80,90,100,110,120,130]
  4. plt.hist(population_ages, bins, histtype='bar', rwidth=0.8)
  5. plt.xlabel('x')
  6. plt.ylabel('y')
  7. plt.title('Interesting Graph\nCheck it out')
  8. plt.legend()
  9. plt.show()

产生的图表为:

三、条形图和直方图 - 图2

对于plt.hist,你首先需要放入所有的值,然后指定放入哪个桶或容器。 在我们的例子中,我们绘制了一堆年龄,并希望以 10 年的增量来显示它们。 我们将条形的宽度设为 0.8,但是如果你想让条形变宽,或者变窄,你可以选择其他的宽度。