Plotly: Как установить положение диаграммы plotly. express с фасетом? - PullRequest
2 голосов
/ 09 мая 2020

Есть ли способ изменить диаграмму положения заголовка, построенную с помощью

fig=px.histogram(df,x='x',facet_row='Date',color='c',
             barmode='overlay',facet_col='number',height=500)
for a in fig.layout.annotations:
    a.text = a.text.split("=")[1]
fig.show()

, справа налево на каждой подзаголовке?

enter image description here

1 Ответ

1 голос
/ 09 мая 2020

Я не уверен на 100%, что вы хотите куда-то переместить, но похоже, что вы хотите, чтобы даты справа появились в середине диаграммы между фасетами. В структуре рисунка это аннотации. И вы можете положить их где угодно, но как и где будет зависеть от строения вашей конкретной фигуры. Поскольку вы не предоставили набор данных, я покажу вам некоторые общие принципы на примере из plotly epress docs , которые должны вам помочь. Если вы предоставите набор данных и полностью рабочий код, я смогу помочь вам с деталями.

График 1:

enter image description here

Код 1:

import plotly.express as px
df = px.data.tips()
fig = px.scatter(df, x="total_bill", y="tip", facet_row="time", facet_col="day", color="smoker", trendline="ols",
          category_orders={"day": ["Thur", "Fri", "Sat", "Sun"], "time": ["Lunch", "Dinner"]})
fig.show()

Здесь элементы, соответствующие тем, которые вы хотите переместить, - это 'time=Lunch' и 'time=Dinner'. Таким образом, в этом случае элементы могут быть размещены в любом месте по оси x следующим образом:

Код: 2

for i, a in enumerate(fig['layout']['annotations']):
  if a['text'][:4]=='time':
    a['x']=0.475
    a['font']=dict(size = 10, color='rgba(255,0,200,0.8)')
    print(a)
fig.show()

Сюжет: 2

enter image description here

Я знаю, что это немного хакерский подход, но я надеюсь, что он вам пригодится.

...