如果我想在matplotlib
中绘制散点图,我可以这样做:
import pandas as pd
from bokeh.io import show
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource
import matplotlib.pyplot as plt
df = pd.DataFrame({'a': range(1, 6), 'b': list('ABCDE')})
plt.scatter(df['a'], df['b'])
plt.show()
哪个给
我如何在bokeh
中获得相同的输出?
我尝试过(与上述设置相同):
source = ColumnDataSource(df)
p = figure(
title="Something great",
tools='save,pan,box_zoom,reset,wheel_zoom',
background_fill_color="#fafafa"
)
p.scatter(
'a',
'b',
source=source
)
show(p)
但是不会显示任何内容。如果我将a
列与其自身相对应,则可以正常工作,这表明代码结构很好,但仅适用于数值。有快速解决方法吗?
答案 0 :(得分:2)
y_range
参数为我解决了该问题。
我在Handling Categorical Data找到了它。
p = figure(
y_range=df['b'], # < -- what I added
title="Something great",
tools='save,pan,box_zoom,reset,wheel_zoom',
background_fill_color="#fafafa"
)