2017-11-25 145 views
0

我想繪製一個條形圖。在x軸上是顧問的ID。他們的範圍在1000到2000之間。每位顧問都有特定數量的顧客(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

好像是分辯關鍵字。但是如果我輸入categoryorder ='array'。類別陣列應該如何?它是列表(範圍(len(num_consultants)))還是num_consultants。到現在爲止,現在有效果。 – user47091

回答

1

有趣Plotly似乎忽略categoryorder爲整數,但排序的禁用可以通過layoutxaxis通過type='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