Есть ли способ плотно обернуть ячейку? - PullRequest
1 голос
/ 07 мая 2020

Есть ли способ обернуть ячейку (чтобы длинный текст поместился в моей ячейке), а также разместить их по центру? Это моя таблица:

import plotly.graph_objects as go

fig = go.Figure(data=[go.Table(
    header=dict(values=['','Monday','Tuesday','Wednesday','thursday','friday','saturday','sunday'],
                line_color='darkslategray',
                fill_color='lightgray',
                align='center'),
     cells=dict(values=[['asdasdasd', 'xvxdwefsdf','asdadwq','zxvwefqewf','wqe124qs'],
                        ["res", 'ds', 'ob', 'pww', 'kw'], # 1 column
                        ['res1', 'ds1', 'ob1', 'pww1', 'kw1'],# 2 column
                        ['res2', 'ds2', 'ob2qweqweqweqweqweqew', 'pww2', 'kw2'],# 3 column
                        ['res3', 'ds3', 'ob4', 'pww3', 'kw3'],# 4 column
                        ['res4', 'ds4', 'ob5', 'pw14151222231231dvzv3123123w4', 'kw4'],# 5 column
                        ['Pancakes' , 'ds5', 'ob6',  'pww5', 'kw5'] ,# 6 column
                        ['Jajecznica', 'ds6', 'obnd' , 'pww6' ,'kw6']], # 7 column
               line_color='darkslategray',
               fill_color='white',
               align='center', 
               height=60))
])
values=['asdasdasd', 'xvxdwefsdf','asdadwq','zxvwefqewf','wqe124qs']
fig.update_layout(width=1300, height=700)

fig.show()

1 Ответ

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

Ответ:

Длинные предложения не проблема, но длинные слова могут быть.

Детали:

Это хороший вопрос. И на какое-то время меня действительно смутило. Потому что, судя по некоторым примерам, Plotly очень хорошо оборачивает длинные строки в ячейки :

enter image description here

Но это случается между словами, обозначенными space. Итак, в упомянутом примере, если вы удалите пробелы, вы получите:

enter image description here

Итак, что вы должны сделать со своим реальным примером, это тщательно спланируйте дизайн и содержание вашего go.Table. И если вам нужно разделить длинное слово, вы, конечно, можете использовать html разрыв строки вместо space, чтобы получить это:

enter image description here

Во фрагменте кода просто замените

'ob2qweqweqweqweqweqew',

... на:

'ob2qweqweq<br>weqweqweqew'
...