簡體   English   中英

繪圖停用 x 軸排序

[英]Plotly deactivate x axis sorting

我想繪制條形圖。 x 軸是顧問的 ID。 它們的范圍在 1000 到 2000 之間。每個顧問都有特定數量的客戶(y 軸)。

現在我想在 plotly 中繪制一個條形圖。 但是陰謀地將顧問 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')

最新版本的 Plotly 現在在布局選項中有一個變量來指定 X 軸的分類布局:

fig.update_layout(
xaxis_type = 'category'
)

有趣的是,Plotly 似乎忽略了整數的categoryorder ,但可以通過在layout中的xaxis中傳遞type='category來禁用排序。

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

默認: ”-”
設置軸類型。 默認情況下,plotly 嘗試通過查看引用相關軸的軌跡數據來確定軸類型。

在此處輸入圖片說明

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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM