Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Bokeh给了我一个带有ColumnDataSource的空绘图_Python_Pandas_Bokeh - Fatal编程技术网

Python Bokeh给了我一个带有ColumnDataSource的空绘图

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

我是Bokeh的新手。我们成功地利用了它,并成功地绘制出了漂亮的图表。。但我认为我的一些基本知识仍然有缺陷

我尝试了下面这个简单的例子,结果得到了一个空图。 我相信这是因为x轴数据是字符串?但我不知道为什么,以及如何修复它

下面是我尝试的代码:

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),但看起来好像没有。