0

plotly を使用してバイオリン プロットを描画する python 関数を作成しました。そのためのコードは次のとおりです。

    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

ループしてdata1data2新しいインスタンスをpd.DataFrame変数に割り当てx、反復ごとにx. のインスタンスを追加する場合はpd.DataFrame、data.append(x) を for ループに移動する必要があります。また、data.append()None を返します。これは、dataオブジェクトで動作するメソッドであるため、data = 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サポートし、のように機能すると仮定しました。appendlists

于 2017-02-13T22:00:59.967 に答える