0

そのようなデータを含むファイルがあります:

0 5 9250 20728 1000 1200 34000

-0.1 -0 0.0 0.1 0.2 0.3

それを読んで、それに応じてヒストグラムを作成する必要があります。最初の行のバーは2番目の行のビンです。

from matplotlib import pyplot
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import string




x = []
y = []
for line in open('data.csv'):
    values = line.strip(' ').split()
    print(line.strip(' ').split())
    x.append(float(values[0]))
    y.append(float(values[1]))


plt.bar(y, x)
plt.xlabel('slack')
plt.ylabel('traces')
plt.title(r'Histogram of Slack')

# Tweak spacing to prevent clipping of ylabel
plt.savefig('igor.png')

histo を取得しているにもかかわらず、次のようになります。 ヒストグラム画像

4

1 に答える 1

1

最初の行を(x, y)値として読み取り、次に 2 行目も読み取ります。x次のように、最初の行は値のみとして、2行目は値のみとして読み取る必要がありますy

from matplotlib import pyplot
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import string

with open('barplt.txt') as infile:
    x = [float(value) for value in infile.readline().strip().split()]
    y = [float(value) for value in infile.readline().strip().split()]

plt.bar(y, x, width=0.1)
plt.xlabel('slack')
plt.ylabel('traces')
plt.title(r'Histogram of Slack')

# Tweak spacing to prevent clipping of ylabel
plt.savefig('igor.png')

また、バーの高さは 7 つあり、例のデータにはビンの位置が 6 つしかありません (0 の位置が 2 つ)。あなたが望むものを私が誤解していない限り。バーの幅を明示的に 0.1 に設定したことに注意してください。

棒グラフ

于 2013-09-24T09:39:27.100 に答える