私はテキストファイルにいくつかのデータを収集し、ボックスプロットを作成したいと思います。 しかし、このデータファイルには可変長の行が含まれています。matplotlibの可変長データ付きBoxplot
1.2、2.3、3.0、4.5
1.1、2.2、2.9
同じ長さのために、私はちょうど
PW = numpy.loadtxt( "./ learning.dat")
matplotlib.boxplotを行うことができます(PW.T)。
可変長データ線はどのように処理しますか?
私はテキストファイルにいくつかのデータを収集し、ボックスプロットを作成したいと思います。 しかし、このデータファイルには可変長の行が含まれています。matplotlibの可変長データ付きBoxplot
1.2、2.3、3.0、4.5
1.1、2.2、2.9
同じ長さのために、私はちょうど
PW = numpy.loadtxt( "./ learning.dat")
matplotlib.boxplotを行うことができます(PW.T)。
可変長データ線はどのように処理しますか?
配列またはリストのリストを使用するだけです。 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()
また、PythonのAPIまたは単にGUIを使用して、Plot.lyで箱ひげ図を行うことができます。
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チームの午前私はあなたがブラウザやこのようなPython APIを行うことができますthis graphを作りました。
うわー、美しい! –
どのようにデータを解釈する必要がありますか?すべての値を単一の1D配列で連結する必要がありますか? –
いいえ、私はデータファイルの列のボックスプロットをしたいと思います。だから私は等しい長さの場合には、m倍nの配列、ボックスプラス、転置、右でしょうか? – Kabbo
docsは "xは配列かベクトルのシーケンスです"と言っています。したがって、あなたのデータを読み込んで、それを一連のベクトルに変換する必要があります。 Pythonのcsvモジュールを使って読むことができるようです。 –