在orangeminer的Python脚本widg中实现QQ绘图

2024-10-01 15:46:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Orange Miner的Python脚本创建一个QQ情节。我不断地得到一个错误,我假设它与Orange的原生数据格式有关,当我试图读取Orange的单个列时,它指出“AttributeError:'Table'object has no attribute'shape'”sm.qqplot公司功能。你知道吗

我已经在其他绘图中大致使用了这个设置。我想出了如何将橙色表格转换为熊猫数据框,以便进行相关热图,如:

import numpy as np
from Orange.data import Table
import Orange
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns



data = in_data.copy()

# Converts to pandas!!!
frame = Orange.data.pandas_compat.table_to_frame(data)

# Get all columns
heatmap_sub = frame.corr(method = 'pearson')

sns.heatmap(heatmap_sub,
            xticklabels=heatmap_sub.columns.values,
            yticklabels=heatmap_sub.columns.values,
            center = 0,
            annot = True)
plt.title('Pearson correlation of Binder type = Acrylic')            
plt.show()

下面是我试图为Q-Q图实现的代码:

import numpy as np
from Orange.data import Table 
import statsmodels.api as sm
import pylab

data = in_data.copy()

sm.qqplot(data[:,1], line='45')
pylab.show()

我希望代码输出的绘图是绘图,但我一直得到这样的结果:

Running script:
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "<string>", line 8, in <module>
  File "C:\Users\Doug\Anaconda3\lib\site-packages\statsmodels\graphics\gofplots.py", line 506, in qqplot
    fit=fit, a=a, loc=loc, scale=scale)
  File "C:\Users\Doug\Anaconda3\lib\site-packages\statsmodels\graphics\gofplots.py", line 130, in __init__
    self.nobs = data.shape[0]
AttributeError: 'Table' object has no attribute 'shape'

我确信这与Orange table对象有关,但我不确定如何将其“转换”为numpy数组或类似的东西。文档简单地说,数据是一个“1d数据数组”。 https://www.statsmodels.org/stable/generated/statsmodels.graphics.gofplots.qqplot.html

提前谢谢你的帮助!你知道吗


Tags: 数据inimport绘图dataaslinetable

热门问题