텍스트 파일에 일부 데이터를 수집하고 박스 플롯을 생성하려고합니다. 그러나이 데이터 파일에는 가변 길이의 행이 들어 있습니다.matplotlib의 가변 길이 데이터 박스 플롯
1.2, 2.3, 3.0, 4.5
1.1, 2.2, 동일한 길이 2.9
그냥
PW = numpy.loadtxt ("./ learning.dat")
matplotlib.boxplot 할 수도 (PW.T);
어떻게 가변 길이 데이터 라인을 처리합니까?
텍스트 파일에 일부 데이터를 수집하고 박스 플롯을 생성하려고합니다. 그러나이 데이터 파일에는 가변 길이의 행이 들어 있습니다.matplotlib의 가변 길이 데이터 박스 플롯
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()
당신이 당신의 데이터를 읽는 방법을 요구하는 경우, 당신이 원하는 것을 할 수있는 많은 방법이있다. 또한 파이썬 API하거나 GUI를 사용하여, Plot.ly의 상자 그림을 할 수
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()
: 간단한 예를 들어.
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']
전체 공개 : 나는 당신이 브라우저 또는이 같은 Python API와 함께 할 수있는 this graph을 만든 내가 Plotly 팀입니다.
와우, 아름다운! –
데이터는 어떻게 해석해야합니까? 모든 값을 단일 1D 배열에서 연결해야합니까? –
아니요, 데이터 파일 열에 boxplots을 사용하고 싶습니다. 그래서 동등한 길이의 경우에 m 행 n 배열이 될 것입니다. 그리고 boxplot은 조바꿈됩니다. – Kabbo
문서에서 "x는 배열 또는 벡터 시퀀스입니다." 따라서 데이터를 읽고 상자 당 하나의 벡터로 변환해야합니다. 파이썬의 csv 모듈을 사용하여 읽을 수있는 것 같습니다. –