Matplotlib 柱状图

Matplotlib 柱状图

柱状图是一种以矩形条表示分类数据并且条的高度或长度与其所代表的值成比例的图表。这些条可以垂直或水平绘制。

柱状图显示离散类别之间的比较。图表的一个坐标轴显示要比较的具体类别,另一个坐标轴代表测量值。

Matplotlib API提供了 bar() 函数,可用于MATLAB样式的使用以及面向对象的API。通过axes对象使用bar()函数的签名如下-

ax.bar(x, height, width, bottom, align)

该函数使用大小为(x-width=2, x+width=2, bottom, bottom+height)的界定矩形绘制条形图。

函数的参数为:

x 一系列标量,表示条形图的x坐标。align用于控制x是条形图的中心(默认)还是左边缘。
height 标量或一系列标量,表示条形图的高度。
width 标量或者类数组,可选。条形图的宽度,默认为0.8。
bottom 标量或者类数组,可选。条形图的y坐标,默认为None。
align {‘center’, ‘edge’},可选, 默认为‘center’。

该函数返回一个带有所有条形图的Matplotlib容器对象。

以下是Matplotlib条形图的一个简单示例。它展示了一个学院提供的各种课程的学生人数。

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
ax.bar(langs,students)
plt.show()

Matplotlib 柱状图

当比较多个数量并改变一个变量时,我们可能希望建立一个柱状图,其中一个数量值对应一种颜色的柱子。

我们可以通过调整柱子的粗细和位置来绘制多个柱状图。数据变量包含三个系列的四个数值。以下脚本将展示四个柱子的三个柱状图。柱子的粗细为0.25个单位。每个柱状图将从上一个柱状图偏移0.25个单位。数据对象是一个多重字典,包含工程学院过去四年中三个专业的学生通过人数。

import numpy as np
import matplotlib.pyplot as plt
data = [[30, 25, 50, 20],
[40, 23, 51, 17],
[35, 22, 45, 19]]
X = np.arange(4)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(X + 0.00, data[0], color = 'b', width = 0.25)
ax.bar(X + 0.25, data[1], color = 'g', width = 0.25)
ax.bar(X + 0.50, data[2], color = 'r', width = 0.25)

Matplotlib 柱状图

层叠条形图将表示不同组的条形放置在彼此之上。结果条形的高度显示了各组的合并结果。

pyplot.bar()函数的可选bottom参数允许您为条形指定一个起始值。它不再从零到一个值,而是从底部到该值。第一次调用pyplot.bar()绘制蓝色条形。第二次调用pyplot.bar()绘制红色条形,蓝色条形的底部位于红色条形的顶部。

import numpy as np
import matplotlib.pyplot as plt
N = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
ind = np.arange(N) # the x locations for the groups
width = 0.35
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(ind, menMeans, width, color='r')
ax.bar(ind, womenMeans, width,bottom=menMeans, color='b')
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
ax.set_yticks(np.arange(0, 81, 10))
ax.legend(labels=['Men', 'Women'])
plt.show()

Matplotlib 柱状图

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程