2017-02-27 1 views
0

プロプライズのカフリンクス(pandasシリーズを使用)を使って対話型の棒グラフをプロットしました。オフラインモードでpandas(ipython notebook)を使ってカフリンクで作成した棒グラフにドロップダウンボックスと検索ボックスを追加する方法は?

以下

は私がプロットするために使用していますコードです:。

cf.go_offline() ## Use plotly in offline mode 

df.iplot(kind='bar', xTitle = 'roles',yTitle='count', title='Bar Plot:', filename='cufflinks/categorical-bar-chart') 

ここDFは私のシリーズで、役割は私の指標である(x軸)

   Priority Year Avg_in_hrs   Total_in_Hrs 
Role       
A   Medium  2015  34.4    34 
B   Low  2014  33.55    123 
C   High  2014  3     4566 
D   Low  2015  12    3666 

今私はx軸のラベルのドロップダウンリストと検索ボックスを追加したいと思いますロールこれは私のパンダのデータフレームの列であり、その特定の役割のプロットだけを見てください。これをどのように追加しますか?

また、対話性を維持できるように、これらの対話型プロットをWebアプリケーションを使用するような方法で共有する方法はありますか?

おかげ

答えて

1

ユーザーがAを選択した場合は、すなわち、選択されたドロップダウンメニューに応じて、あなたのyaxisrangeAのための特定の範囲のみを移動することができますが示されています。

このコードでは、それぞれindexのドロップダウンエントリを定義し、1つはグラフをリセットします。

import pandas as pd 
import cufflinks as cf 
cf.go_offline() 

roles = 'ABCDE' 
prios = ['Medium', 'Low', 'High', 'Low', 'High'] 
years = [2015, 2014, 2014, 2015, 2014] 
avgs = [34.4, 33.55, 3, 12, 15] 
total_hours = [34, 123, 4566, 3666, 4000] 

data = dict() 
data['Prio'] = prios 
data['Year'] = years 
data['average'] = avgs 
data['hours'] = total_hours 

df = pd.DataFrame(data) 
df.index = list(roles) 
df.index.names = ['Role'] 

buttons = list() 
offset = -0.5 
for r in roles: 
    buttons.append(dict(
     args=['xaxis.range', [offset, offset + 1]], 
     label=r, 
     method='relayout' 
    )) 
    offset += 1 
buttons.append(dict(
    args=['xaxis.range', [-0.5, offset]], 
    label='Reset', 
    method='relayout' 
)) 
layout = dict(updatemenus=list([ 
     dict(
      x=-0.05, 
      y=0.8, 
      buttons=buttons, 
      yanchor='top' 
     ) 
    ]) 
) 
df.iplot(kind='bar', xTitle = 'roles',yTitle='count', title='Bar Plot:', filename='cufflinks/categorical-bar-chart', layout=layout) 
+0

ありがとう。オリジナルのデータセットをプロットするためにコードを使用しました。それはよさそうだ。もう1つ質問すると、すべてのラベル値、つまり優先度、年などはy軸には表示されず、ドロップダウンリストにはすべてのラベルが表示されません。私は私の役割のインデックスの64の異なる値を得た。その良い私は役割のための検索ボックスを含める必要があります。 – Niranjanp

+0

私が知っている限り、Plotlyはフリーテキスト検索を提供していませんが、Javascriptでそれを実装する必要があります。欠けているy軸のラベルはカフスボタンの結果です。カフリンクスの結果は非常に短いですが、より多くのコントロールが必要な場合は、Plotlyの構文を使用する必要があります。 –

関連する問題