Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib中具有可变长度数据的箱线图_Python_Matplotlib_Boxplot - Fatal编程技术网

Python matplotlib中具有可变长度数据的箱线图

Python matplotlib中具有可变长度数据的箱线图,python,matplotlib,boxplot,Python,Matplotlib,Boxplot,我在一个文本文件中收集了一些数据,想创建一个箱线图。 但是,例如,这个数据文件包含可变长度的行 1.2,2.3,3.0,4.5 1.1、2.2、2.9 对于相同的长度,我可以做 PW=numpy.loadtxt(“./learning.dat”) matplotlib.箱线图(PW.T) 如何处理可变长度的数据线?只需使用数组或列表列表即可箱线图将采用任何类型的序列(不管怎样,任何具有\uu len\uuu的序列。它不适用于生成器等) 例如: 如果你在问如何读取数据,有很多方法可以做到你想要的

我在一个文本文件中收集了一些数据,想创建一个箱线图。 但是,例如,这个数据文件包含可变长度的行

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

对于相同的长度,我可以做
PW=numpy.loadtxt(“./learning.dat”)
matplotlib.箱线图(PW.T)


如何处理可变长度的数据线?

只需使用数组或列表列表即可<代码>箱线图将采用任何类型的序列(不管怎样,任何具有
\uu len\uuu
的序列。它不适用于生成器等)

例如:

如果你在问如何读取数据,有很多方法可以做到你想要的。举个简单的例子:

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']
充分披露:我是阴谋团队的一员


应如何解释数据?是否所有值都应该连接到一个1D数组中?否,我希望数据文件列有箱线图。所以在等长的情况下,我要做的是一个m乘以n的数组,然后用方框图表示转置,对吗?文档上说“x是一个数组或向量序列”。所以你需要读入数据并将其转换成一系列向量,每个框一个。看起来您可以使用Python的csv模块来阅读它。我已经读过了,但这不是问题所在。当您使用多维数组时,它确实有效。我的问题是,我有不同长度的序列,但不知道如何将其输入matplotlib.boxplot这很有趣,因为如果长度不同,boxplot将按其应有的方式绘制,但如果长度相同,则需要转置数组。
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']