如何将plt.bar函数的结果存储到数组中?
如何将plt.bar的结果存储到数组
嘿,当然可以!plt.bar()函数本身就会返回一个BarContainer对象,你可以直接把它赋值给变量,之后还能从中提取条形的各种属性(比如高度、位置、颜色等)。
基础存储示例
先看最直接的存储方式,把plt.bar()的返回值存到变量里:
import matplotlib.pyplot as plt a = [1,2,3] b = [21321,5345,654457] height = list(b) # 存储plt.bar的结果到a_b a_b = plt.bar(a, height=height)
这里的a_b就是包含所有条形元素的BarContainer对象,你可以把它看作是一个装着每个条形(Rectangle实例)的容器。
提取具体数值到数组
如果想要把条形的具体属性(比如高度、x坐标)提取成数组,可以遍历这个容器:
# 提取所有条形的高度到数组 bar_heights = [bar.get_height() for bar in a_b] print(bar_heights) # 输出: [21321, 5345, 654457] # 提取所有条形的x位置到数组 bar_x_positions = [bar.get_x() for bar in a_b] print(bar_x_positions) # 输出: [0.8, 1.8, 2.8](默认条形宽度是0.8,所以x位置是原a值减0.2)
补充说明
- BarContainer对象还支持通过
a_b.patches直接访问所有的Rectangle实例,和遍历a_b效果完全一致。 - 如果后续对条形做了修改(比如调整高度、颜色),通过
get_height()这类方法获取的是修改后的数值,不是初始传入的height值哦。
内容的提问来源于stack exchange,提问作者JBK
相关产品推荐
相关产品推荐

