如何在散景中创建多线图标题?...与https://github.com/bokeh/bokeh/issues/994相同的问题 这解决了吗?
import bokeh.plotting as plt
plt.output_file("test.html")
plt.text(x=[1,2,3], y = [0,0,0], text=['hello\nworld!', 'hello\nworld!', 'hello\nworld!'], angle = 0)
plt.show()
此外,标题文字字符串可以接受富文本吗?
答案 0 :(得分:1)
在最新版本的Bokeh中,标签和文本字形可以接受文本中的换行符,并且这些换行符将按预期呈现。对于多行标题,您必须为所需的每行添加显式Title
注释。这是一个完整的例子:
from bokeh.io import output_file, show
from bokeh.models import Title
from bokeh.plotting import figure
output_file("test.html")
p = figure(x_range=(0, 5))
p.text(x=[1,2,3], y = [0,0,0], text=['hello\nworld!', 'hello\nworld!', 'hello\nworld!'], angle = 0)
p.add_layout(Title(text="Sub-Title", text_font_style="italic"), 'above')
p.add_layout(Title(text="Title", text_font_size="16pt"), 'above')
show(p)
产生:
请注意,您仅限于Bokeh公开的标准“文本属性”,因为基础HTML Canvas不接受富文本。如果您需要类似的东西,可以使用custom extension
答案 1 :(得分:0)
您可以使用以下方法为情节添加简单的标题:
from bokeh.plotting import figure, show, output_file
output_file("test.html")
p = figure(title="Your title")
p.text(x=[1,2,3], y = [0,0,0], text=['hello\nworld!', 'hello\nworld!', 'hello\nworld!'], angle = 0)
show(p)
<强>附录强>
以下是绘制pandas数据帧的工作示例,供您复制/粘贴到jupyter笔记本中。它不优雅也不是pythonic。很久以前我从各种SO帖子中得到了它。对不起,我不记得哪些了,所以我不能引用它们。
<强>代码强>
# coding: utf-8
from bokeh.plotting import figure, show
from bokeh.io import output_notebook
import pandas as pd
import numpy as np
# Create some data
np_arr = np.array([[1,1,1], [2,2,2], [3,3,3], [4,4,4]])
pd_df = pd.DataFrame(data=np_arr)
pd_df
# Convert for multi-line plotting
data = [row[1].as_matrix() for row in pd_df.iterrows()]
num_lines = len(pd_df)
cols = [pd_df.columns.values] * num_lines
data
# Init bokeh output for jupyter notebook - Adjust this to your needs
output_notebook()
# Plot
p = figure(plot_width=600, plot_height=300)
p.multi_line(xs=cols, ys=data)
show(p)
<强>剧情强>