Python Bokeh给了我一个带有ColumnDataSource的空绘图
我是Bokeh的新手。我们成功地利用了它,并成功地绘制出了漂亮的图表。。但我认为我的一些基本知识仍然有缺陷 我尝试了下面这个简单的例子,结果得到了一个空图。 我相信这是因为x轴数据是字符串?但我不知道为什么,以及如何修复它 下面是我尝试的代码:Python Bokeh给了我一个带有ColumnDataSource的空绘图,python,pandas,bokeh,Python,Pandas,Bokeh,我是Bokeh的新手。我们成功地利用了它,并成功地绘制出了漂亮的图表。。但我认为我的一些基本知识仍然有缺陷 我尝试了下面这个简单的例子,结果得到了一个空图。 我相信这是因为x轴数据是字符串?但我不知道为什么,以及如何修复它 下面是我尝试的代码: from bokeh.io import show, output_notebook from bokeh.plotting import figure from bokeh.models import ColumnDataSource import p
from bokeh.io import show, output_notebook
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource
import pandas as pd
scores = [['Tom', 85], ['Dick', 30], ['Harry', 60], ['Sally', 80], ['Jimmy', 70], ['Raj', 50]]
scores_df = pd.DataFrame(scores, columns=['Name', 'Score'])
source = ColumnDataSource(scores_df)
fig = figure(title='my chart', plot_width=300, plot_height=300, y_range=(0,100), x_axis_label='Name', y_axis_label='Score')
fig.vbar(x='Name', top='Score', bottom=0, source=source, width=1, color='black')
output_notebook()
show(fig)
这是我得到的输出:
请帮助我理解我在这里遗漏了什么?我相信Bokeh在某些情况下需要使用vBar定义x范围(特别是当类别是字符串时),如果我错了,请纠正我 将x_range=分数_df['Name']添加到图形中
fig = figure(title='my chart', plot_width=300, plot_height=300, y_range=(0,100), x_axis_label='Name', y_axis_label='Score', x_range=scores_df['Name'])
绘制了条形图
根据进一步的阅读,我明白了我可能必须明确地通过x_范围,因为x_轴由标称值组成。但是,由于源是ColumnDataSource,我不确定在初始化图形时如何显式地将“Name”字段引用为x_范围。不知道我在那里的路径是否正确..事实上,您可能是正确的。在我之前的评论中,我也有同样的看法。doc的内容也一样:但是,我想知道是否有一种方法可以直接使用ColumnDataSource引用范围,而不必引用更高级别的源(在本例中是dataframe),但看起来好像没有。