0

我创建了一个 python 函数来使用 plotly 绘制小提琴图。代码是:

    def print_violin_plot(data1,data2,type1,type2,fig_title):
        data = pd.DataFrame(columns=('Group', 'Number'))
        for i in data1:
            x = pd.DataFrame({'Group' : [type1],
                      'Number' : [i],})
        data = data.append(x, ignore_index=True) 
        for i in data2:
            x = pd.DataFrame({'Group' : [type2],
                      'Number' : [i],})
        data = data.append(x, ignore_index=True)  

       fig = FF.create_violin(data, data_header='Number',     
       group_header='Group', height=500, width=800, title= fig_title)
       py.iplot(fig, filename="fig_title")

然后我调用该函数

    print_violin_plot(eng_t['grade'],noneng_t['grade'],'English 
    Speaking','Non-English Speaking', 'Grades')

该函数运行良好,没有任何错误,但我没有看到任何输出。为什么?

4

1 回答 1

0

当您循环data1并为变量data2分配新实例时,每次迭代都会覆盖. 如果要附加实例,则应将 data.append(x) 移动到 for 循环。此外,返回 None,它是在对象上工作的方法,因此结果为. 您的代码应如下所示pd.DataFramexxpd.DataFramedata.append()datadata = data.append(..)data == None

data = pd.DataFrame(columns=('Group', 'Number'))
for i in data1:
        x = pd.DataFrame({'Group' : [type1],
                  'Number' : [i],})
for i in data2:
        x = pd.DataFrame({'Group' : [type2],
                  'Number' : [i],})
        data.append(x, ignore_index=True) 

为了清楚起见,我必须说我不知道​​什么pg.DataFrame意思或做什么,但我上面写的肯定是你的代码中的一个缺陷。我假设pg.DataFrame实例支持append方法并像lists.

于 2017-02-13T22:00:59.967 回答