【问题标题】:How to make a bar plot in Python3? [closed]如何在 Python3 中制作条形图? [关闭]
【发布时间】:2018-03-13 10:57:21
【问题描述】:

如何根据我的数据制作直方图?我的意思是,我知道我的示例是为了示例

s = [1,4,2,5,3]

然后我想要一个图,使第一个条的高度为 1,第二个为 4,依此类推。所以柱的数量必须等于len(s)。所以我希望得到一个像

这样的直方图
   #
 # #
 # ##
 ####
#####

但图形。我尝试使用 matplotlib 但没有成功。

【问题讨论】:

    标签: python-3.x histogram


    【解决方案1】:

    这样的东西对我来说很好用:

    import matplotlib.pyplot as plt
    s = [1,4,2,5,3]
    plt.bar(range(len(s)), sorted(s))
    plt.show()
    

    对于条形图,您需要提供两个列表,第一个用于设置 x 位置,然后另一个用于设置每个 y 位置上的 y 值。

    对于您的示例,最简单的方法是创建一个从 0 到数组长度的向量:range(len(s)) 并将其用于条形定位,您将得到:

    【讨论】:

    • 我试过了,它适用于那种特殊情况。但是当列表是 ['106.84', '107.51', '107.55', '107.28', '107.57', '106.75', '107.33', '107.46', '107.38', '107.6'] y 轴数字不是按递增顺序排列的。
    • 你不能只提供排序列表吗?查看更新的回复
    • 我试图绘制列表[106.84, 107.51, 107.55, 107.28, 107.57, 106.75, 107.33, 107.46, 107.38, 107.6],它在我将字符串转换为浮点数后开始工作。 y 轴的比例似乎太大了,0 到 110,所以很难比较条形。
    • 你可以用 ylim 函数来改变
    猜你喜欢
    • 2016-07-06
    • 2017-11-20
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多