Как отображать текст в боке, сохраняя разрывы строк - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь создать отчет, состоящий из графиков и некоторого текста, используя Bokeh 2.0.1, и я пытаюсь сохранить оригинальные пропуски строк в тексте, который я передаю bokeh.layouts.gridplot.

Однако Я вижу, что все разрывы строк удаляются после создания файла HTML, и, по сути, все абзацы объединяются в одно непрерывное предложение. Я не уверен, почему это происходит. Я не нашел большой помощи в документации Bokeh относительно этой проблемы.

Вот минимальный пример раздела кода, который я пытаюсь заставить работать.

from bokeh.layouts import gridplot
from bokeh.models import Paragraph
from bokeh.plotting import output_file, save

sampText = "PARAGRAPH 1: This is a minimal example of a text. This is a minimal example of a text. This is a minimal example of a text. This is a minimal example of a text. This is a minimal example of a text. This is a minimal example of a text.\n

PARAGRAPH 2: This is a minimal example of a text. This is a minimal example of a text. This is a minimal example of a text. This is a minimal example of a text. This is a minimal example of a text."

fig1 = ...

fig2 = ...

text = Paragraph(text = sampText, width = 1500, height_policy = "auto", style = {'fontsize': '10pt', 'color': 'black', 'font-family': 'arial'})

output_file(filename = "myMinimalExampleOutput" + ".html")
output = gridplot([fig1, fig2, text], ncols = 1, plot_width = 1500, sizing_mode = 'scale_width')
save(output)

Может кто-то пожалуйста, укажите, почему это происходит?

1 Ответ

1 голос
/ 11 апреля 2020

Так работает HTML - он удаляет все «ненужные» пробелы из текста.

Чтобы два абзаца работали, вы должны заключить каждый из них в <p></p>. Но поскольку Paragraph генерирует тот же тег, вы не можете использовать этот класс. Используйте обычный Div и установите для его входного параметра text значение HTML, которое вы хотите визуализировать.

Div(text='<p>paragraph 1</p><p>paragraph 2</p>')
...