2017-01-25 2 views
1

Я получаю пустой график, когда пытаюсь построить график линии. Я использую dataframe. Мой образец csv имеет 4 столбца.Проблема с построением графика линии bokeh с pandas

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() 

Я не могу узнать, какую ошибку я делаю.

ответ

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) 

enter image description here

+0

спасибо Пабло. Это решило мою проблему. – user7329737

Смежные вопросы