如何向散景饼图添加额外的标签/图表名称
How to add extra label / chart name to bokeh pie chart
我想在此图表的左下角添加一个标签,上面写着“国家/地区”[不在标题中]。
我尝试了标签集和其他方法,但找不到适合我问题的方法。
from math import pi
import pandas as pd
from bokeh.io import output_file, show
from bokeh.palettes import Category20c
from bokeh.plotting import figure
from bokeh.transform import cumsum
output_file("pie.html")
x = {
'United States': 157,
'United Kingdom': 93,
'Japan': 89,
'China': 63,
'Germany': 44,
'India': 42,
'Italy': 40,
'Australia': 35,
'Brazil': 32,
'France': 31,
'Taiwan': 31,
'Spain': 29
}
data = pd.Series(x).reset_index(name='value').rename(columns={'index':'country'})
data['angle'] = data['value']/data['value'].sum() * 2*pi
data['color'] = Category20c[len(x)]
p = figure(plot_height=350, title="Pie Chart", toolbar_location=None,
tools="hover", tooltips="@country: @value", x_range=(-0.5, 1.0))
p.wedge(x=0, y=1, radius=0.4,
start_angle=cumsum('angle', include_zero=True), end_angle=cumsum('angle'),
line_color="white", fill_color='color', legend_field='country', source=data)
p.axis.axis_label=None
p.axis.visible=False
p.grid.grid_line_color = None
show(p)
这里有两个选项(在 Bokeh v2.1.1 上测试):
p.wedge(x=0, y=0,...)
p.text(x=[0],y=[0],text=['Countries'],x_offset=-180,y_offset=140)
label=Label(x=0,y=0,x_units='screen',y_units='screen',text='Countries')
p.add_layout(label)
结果:
我想在此图表的左下角添加一个标签,上面写着“国家/地区”[不在标题中]。
我尝试了标签集和其他方法,但找不到适合我问题的方法。
from math import pi
import pandas as pd
from bokeh.io import output_file, show
from bokeh.palettes import Category20c
from bokeh.plotting import figure
from bokeh.transform import cumsum
output_file("pie.html")
x = {
'United States': 157,
'United Kingdom': 93,
'Japan': 89,
'China': 63,
'Germany': 44,
'India': 42,
'Italy': 40,
'Australia': 35,
'Brazil': 32,
'France': 31,
'Taiwan': 31,
'Spain': 29
}
data = pd.Series(x).reset_index(name='value').rename(columns={'index':'country'})
data['angle'] = data['value']/data['value'].sum() * 2*pi
data['color'] = Category20c[len(x)]
p = figure(plot_height=350, title="Pie Chart", toolbar_location=None,
tools="hover", tooltips="@country: @value", x_range=(-0.5, 1.0))
p.wedge(x=0, y=1, radius=0.4,
start_angle=cumsum('angle', include_zero=True), end_angle=cumsum('angle'),
line_color="white", fill_color='color', legend_field='country', source=data)
p.axis.axis_label=None
p.axis.visible=False
p.grid.grid_line_color = None
show(p)
这里有两个选项(在 Bokeh v2.1.1 上测试):
p.wedge(x=0, y=0,...)
p.text(x=[0],y=[0],text=['Countries'],x_offset=-180,y_offset=140)
label=Label(x=0,y=0,x_units='screen',y_units='screen',text='Countries')
p.add_layout(label)
结果: