2017-11-25 22 views
0

棒グラフをプロットしたい。 x軸にはコンサルタントのIDが表示されます。各コンサルタントには特定の数の顧客(y軸)があります。x軸の並べ替えを非アクティブにする

今私はプロットで棒グラフをプロットしたいと思います。しかし、陰謀的にコンサルタントIDを昇順に並べ、整数として解釈しますが、そうではありません。彼らは私がうんざりさせるリストのように命じられるでしょう。

ところで、matplotlibでは順序は正しいです。

trace1 = go.Bar(
    x=consultants, 
    y=info[0,:] 
) 
trace2 = go.Bar(
    x=consultants, 
    y=info[1,:], 
) 
trace3 = go.Bar(
    x=consultants, 
    y=info[2,:] 
) 
trace4 = go.Bar(
    x=consultants, 
    y=info[3,:] 
) 

data = [trace1, trace2, trace3, trace4] 
layout = go.Layout(
     barmode='stack', 
     xaxis=dict(
     categoryorder='array', 
     categoryarray=consultants, 
     titlefont=dict(
     size=18, 
     color='black'), 
     showticklabels=True, 
     tickfont=dict(
     size=16, 
     color='black', 
     ), 
    tickangle=20 
    ), 
yaxis=dict(
    title='Number of customers', 
     titlefont=dict(
     size=18, 
     color='black'), 
    showgrid=True, 
    showline=False, 
    showticklabels=True, 
    tickfont=dict(
     size=16, 
     color='black') 
    ), 

) 

fig = go.Figure(data=data, layout=layout) 
py.iplot(fig, filename='stacked-bar') 
+0

を見ている:https://plot.ly/python/reference/#layout-xaxis-categoryorder –

+0

はrigthキーワードであるように思われます。しかし、categoryorder = 'array'と入力します。カテゴリーアレイはどのように見えますか?それはリスト(範囲(len(num_consultants)))かnum_consultantsかです。今までは今のところ効果があります。 – user47091

答えて

1

興味深いことにPlotly整数のcategoryorderを無視するのではなく、並べ替えを無効にすることlayoutxaxistype='categoryを渡すことによって達成することができるようです。

type (enumerated : "-" | "linear" | "log" | "date" | "category")

デフォルト: " - "
は、軸タイプを設定します。デフォルトでは、 にプロットして、 が問題の軸を参照しているトレースのデータを調べて、軸の種類を決定します。

enter image description here

import plotly 
import plotly.graph_objs as go 
import numpy as np 

plotly.offline.init_notebook_mode() 

consultants = [1, 3, 2, 5, 4] 
info = np.random.randint(100, size=(5,5)) 

data = [] 
for i in range(len(info)): 
    data.append(go.Bar(x=consultants, 
         y=info[i,:])) 

layout = go.Layout(barmode='stack', 
        xaxis=dict(type='category'), 
        yaxis=dict(title='Number of customers')) 

fig = go.Figure(data=data, layout=layout) 
plotly.offline.iplot(fig, filename='stacked-bar') 
+0

ありがとうございます。それがどのように機能するのですか? – user47091

関連する問題