[英]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.