In[21]: from bokeh.charts import Bar, output_file, show
In[22]: dict = {'sec': {u'A': 10, u'B': 20}}
In[23]: df = pd.DataFrame(dict)
In[24]: df
Out[24]:
sec
A 10
B 20
In[25]: output_file("bar.html")
In[26]: p = Bar(df)
In[27]: show(p)
我喜欢带有A和B标签的条形图,2个尺寸为10和10的条形图。 20:
此示例不提供任何内容。
我使用values =,labels = etc尝试了各种变体,但似乎数据总是默认汇总(agg =' sum')
Bar对象是否太高,无法绘制我喜欢的内容(2个条形图,大小为10& 20,名为A和B)或者我是否错误地使用了该对象? DataFrame我使用了错误的'格式',我应该将索引放在一列吗? 如果有人可以提供一个非常简单的图表,那就太棒了!
编辑:搞定了这个,DataFrame的索引太糟糕了,不管是标签,对我来说似乎合乎逻辑:)
import pandas as pd
from bokeh.charts import Bar
from bokeh.io import output_notebook, show
output_notebook()
dict = {'values': {u'A': 10, u'B': 20}}
df = pd.DataFrame(dict)
df['label'] = df.index
df
p = Bar(df, values='values',label='label')
show(p)
答案 0 :(得分:11)
其他答案已过时。已弃用并删除bokeh.charts
API,不应再使用它。对于基本(非基本)条形图,用户现在应使用Handling Categorical Data中所述的稳定bokeh.plotting
API。举个例子:
from bokeh.io import show, output_file
from bokeh.plotting import figure
output_file("bars.html")
fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']
p = figure(x_range=fruits, plot_height=250, title="Fruit Counts")
p.vbar(x=fruits, top=[5, 3, 4, 2, 4, 6], width=0.9)
p.xgrid.grid_line_color = None
p.y_range.start = 0
show(p)
哪个收益率:
上面的“用户指南”链接中有更多示例,展示了如何实现彩色贴图,堆叠,分组和嵌套栏,或直接使用Pandas DataFrames和GroupBys。
答案 1 :(得分:1)
如果你看一下Bokeh docs 你看到Bar聚合了数据。 更容易的是更好地重新划分数据帧。 可能还有其他小部件可供使用,但至少下面的示例很容易理解,更重要的是:
from bokeh.charts import Bar
from bokeh.io import save
import pandas as pd
dict = {'values':[10,20], 'names':['A','B']}
df = pd.DataFrame(dict)
p = Bar(df, 'names', values='values', title="test chart")
save(p,'test3.html')
我让你做你需要的所有样式。
希望这有帮助, 吨。
答案 2 :(得分:-1)
tk的答案给了我一个运行错误。我为绘图添加了import
,并将最后一个语句从save
更改为show
。这对我有用。
from bokeh.plotting import figure, show, output_file
from bokeh.charts import Bar
import pandas as pd
dict = {'values':[10,20], 'names':['A','B']}
df = pd.DataFrame(dict)
p = Bar(df, 'names', values='values', title="test chart")
show(p)