13

テキストファイルにいくつかのデータを収集し、箱ひげ図を作成したいと考えています。ただし、このデータファイルには、たとえば可変長の行が含まれています。

1.2, 2.3, 3.0, 4.5  
1.1, 2.2, 2.9

同じ長さで私はただできる

PW  = numpy.loadtxt("./learning.dat")  
matplotlib.boxplot(PW.T);

可変長データ行を処理するにはどうすればよいですか?

4

2 に答える 2

25

配列またはリストのリストを使用するだけです。boxplot任意の種類のシーケンスを取ります (__len__とにかく、 , を持つものは何でも。ジェネレーターなどでは機能しません)。

例えば:

import matplotlib.pyplot as plt
x = [[1.2, 2.3, 3.0, 4.5],
     [1.1, 2.2, 2.9]]
plt.boxplot(x)
plt.show()

ここに画像の説明を入力

データを読み取る方法を尋ねている場合、必要なことを行う方法はたくさんあります。簡単な例として:

import matplotlib.pyplot as plt
import numpy as np

def arrays_from_file(filename):
    """Builds a list of variable length arrays from a comma-delimited text file"""
    output = []
    with open(filename, 'r') as infile:
        for line in infile:
            line = np.array(line.strip().split(','), dtype=np.float)
            output.append(line)
    return output

plt.boxplot(arrays_from_file('test.txt'))
plt.show()
于 2011-01-30T15:24:31.740 に答える
2

Python API または GUI のみを使用して、Plot.ly で boxplot を実行することもできます。このグラフを作成しました。これは、ブラウザまたはPython APIで次のように実行できます。

box1 = {'y': [1.2, 2.3, 3.0, 4.5],
'type': 'box'}
box2 = {'y': [1.1, 2.2, 2.9],
'type': 'box'}
response = py.plot([box1, box2])
url = response['url']
filename = response['filename']

完全な開示: 私は Plotly チームに所属しています。

ここに画像の説明を入力

于 2013-11-19T09:37:29.703 に答える