【问题标题】:Make histogram from data in python从python中的数据制作直方图
【发布时间】:2015-06-04 22:46:57
【问题描述】:

我正在尝试从保存在 .dat 文件中的数据制作直方图:我制作了其他类型的图,但是在尝试制作直方图时我收到一个错误:ValueError: x 只有一个数据点。必须给出 bins 或 range kwarg。 该表肯定有(很多)不止一个数据点! 下面的代码...

import numpy as  np
import matplotlib.pyplot as plt

a=open('/24_5_15b.dat','r')

header0=a.readline()

W1=[]
W2=[]

for line in a:
    line=line.strip()
    columns=line.split()
    W1=float(columns[13])
    W2=float(columns[15])

    w1=np.asarray(W1)
    w2=np.asarray(W2)   

    n, bins, patches = plt.hist(w1, 20, normed=1, histtype='bar', rwidth=0.8)

plt.show() 

当我要求打印 w1 时,它会打印所有值。所有数字都是浮点数 - 这会有所不同吗? 谢谢...

【问题讨论】:

  • 您能否发布您的数据文件(或其内容)的 sn-p,以便我们查看它的外观?

标签: python histogram


【解决方案1】:

从这个外观来看,您正试图用第一行绘制直方图:

for line in a:
    ...
    n, bins, patches = plt.hist(w1, 20, normed=1, histtype='bar', rwidth=0.8)

要制作直方图,您需要传递所有数据,而不是一次传递一个。

我也建议为此使用genfromtxt,您可以使用以下内容:

a = np.genfromtxt('/24_5_15b.dat')  # delimiter is " " by default
w1 = a[:,13]
w2 = a[:,15]

plt.hist(w1, ...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 2020-08-11
    • 1970-01-01
    • 2018-08-03
    相关资源
    最近更新 更多