当我尝试绘制线图时,我得到空白图表。我正在使用数据帧。我的示例csv有4列。
import pandas as pd
df = pd.read_csv('c:\Temp\abc.csv')
from bokeh.plotting import figure, show, output_file
x=df.iloc[:,0]
y=df.iloc[:,1:]
output_file("sample.html")
p = figure(plot_width=400, plot_height=400)
p.line(x,y,line_width=2)
show(p)
但是当我使用Line()并传递df时,我能够成功生成图形。
from bokeh.charts import Line
Line(df)
output_notebook()
我无法找出我犯的错误。
答案 0 :(得分:1)
您必须使用multi_line
绘制多行。请参阅链接:Plotting with Basic Glyphs。我假设您的x轴位于df的第一列,并且您希望其他3列为三行。我在这里提供一个例子:
import bokeh
import bokeh.plotting
df = np.array(
[[ 1. , 1.1, 1.2, 1.3],
[ 2. , 2.1, 2.2, 2.3],
[ 3. , 3.1, 3.2, 3.3],
[ 4. , 4.1, 4.2, 4.3],
[ 5. , 5.1, 5.2, 5.3]])
x=df[:,[0]].repeat(df.shape[1]-1,1).T # x axis values are needed for every line
y=df[:,1:].T
p = bokeh.plotting.figure(plot_width=400, plot_height=400)
p.multi_line(list(x),list(y),line_width=2,color=["firebrick", "navy","green"])
bokeh.io.output_notebook() # Erase If output is not a jupyter notebook
bokeh.io.show(p)