如何将plt.bar的结果存储到数组中

时间:2018-05-06 04:46:38

标签: python python-2.7 numpy matplotlib

我想知道可以将plt.bar函数的结果存储到数组中。像

这样的东西
a=[1,2,3]
b=[21321,5345,654457]

height=list(b)

plt.bar(a,height=height)

a_b=result_of_pltbar

1 个答案:

答案 0 :(得分:0)

我不确定将结果存储到数组中是什么意思,但这里有一些想法。

假设pltfrom matplotlib import pyplot as plt导入,结果数字如下所示:

barplot

  • 栏的高度位于b
  • 条形的x位置存储在a

现在你除了酒吧的“边缘”之外还有其他所有东西。要获取当前轴,您可以使用ax = plt.gca()。如果您调查vars(ax),您会发现ax.patches看起来特别有趣。它们包含有关条形的数据。您可以在ax.patches[0]找到以下内容:

In [18]: vars(ax.patches[0])
Out[18]:
{'_stale': True,
....
 '_x0': 0.6,
 '_y0': 0,
 '_width': 0.8,
 '_height': 21321,
 '_x1': 1.4,
 '_y1': 21321,
....
}

从这里可以很容易地看出,这些是第一个条形的所有几何属性和位置坐标。所以,如果你想收集条形图的左边缘,你可以使用

left_edges = [bar._x0 for bar in ax.patches]

将导致[0.6, 1.6, 2.6]。获得酒吧的其他属性的过程应该是明确的。