我正在尝试使用matplotlib为两个类 A 和 B 创建两个值的条形图。
我的值为a = 43
和b = 21
。
我需要这个情节看起来像这样:
我一直试图用matplotlib的例子做几乎一个小时,但最终放弃了。也许有人可以帮助我?
答案 0 :(得分:2)
使用bar()
:
import matplotlib.pyplot as plt
fig = plt.figure()
s = fig.add_subplot(111)
s.bar([1, 2], [43, 21], width=1)
s.set_xlim(0.5, 3.5)
fig.savefig('t.png')
编辑:更准确地遵循规范。
答案 1 :(得分:2)
从mpl 1.5开始,你可以做到:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.bar([1, 2], [43, 21], width=1,
tick_label=['A', 'B'], align='center')
答案 2 :(得分:1)
关于fjarri的答案的一些变化,
可以更轻松地更改条形数及其值
标记每个栏
import matplotlib.pyplot as plt
import numpy as np
BAR_WIDTH = 1. # 0. < BAR_WIDTH <= 1.
def main():
# the data you want to plot
categories = ["A", "B"]
values = [ 43, 21]
# x-values for the center of each bar
xs = np.arange(1, len(categories) + 1)
# plot each bar centered
plt.bar(xs - BAR_WIDTH/2, values, width=BAR_WIDTH)
# add bar labels
plt.xticks(xs, categories)
# make sure the chart is centered
plt.xlim(0, len(categories) + 1)
# show the results
plt.show()
main()
产生