Tôi muốn cung cấp khung dữ liệu gấu trúc cho Bokeh để vẽ biểu đồ đường kẻ với nhiều dòng. Trục x phải là df.index và mỗi df.column phải là một dòng riêng biệt.Vẽ nhiều đường với Bokeh và gấu trúc
Đây là những gì tôi wouuld muốn làm:
import pandas as pd
import numpy as np
from bokeh.plotting import figure, show
toy_df = pd.DataFrame(data=np.random.rand(5,3), columns = ('a', 'b' ,'c'), index = pd.DatetimeIndex(start='01-01-2015',periods=5, freq='d'))
p = figure(width=1200, height=900, x_axis_type="datetime")
p.multi_line(df)
show(p)
Tuy nhiên, tôi nhận được lỗi:
RuntimeError: Missing required glyph parameters: ys
Thay vào đó, ive được quản lý để làm điều này:
import pandas as pd
import numpy as np
from bokeh.plotting import figure, show
toy_df = pd.DataFrame(data=np.random.rand(5,3), columns = ('a', 'b' ,'c'), index = pd.DatetimeIndex(start='01-01-2015',periods=5, freq='d'))
ts_list_of_list = []
for i in range(0,len(toy_df.columns)):
ts_list_of_list.append(toy_df.index)
vals_list_of_list = toy_df.values.T.tolist()
p = figure(width=1200, height=900, x_axis_type="datetime")
p.multi_line(ts_list_of_list, vals_list_of_list)
show(p)
Đó (không lo lắng) thực hiện công việc nhưng nó sử dụng cùng một màu cho cả 3 dòng, xem bên dưới:
Câu hỏi:
1) làm thế nào tôi có thể vượt qua một dataframe gấu trúc để Bokeh của multi_line?
2) Nếu không thể trực tiếp, làm cách nào tôi có thể thao tác dữ liệu khung dữ liệu để multi_line sẽ tạo mỗi dòng có màu khác nhau?
cảm ơn trước
Lưu ý rằng một nhược điểm nghiêm trọng của việc sử dụng multi_line cho âm mưu cột của một dataframe là rằng nó không phải dễ dàng có thể để thêm một mục huyền thoại cho mỗi cột. Xem [Hỏi đáp này] (http://stackoverflow.com/questions/31419388/bokeh-how-to-add-legend-to-figure-created-by-multi-line-method) – jhin
Có thể thêm chuột không công cụ cho một con số như vậy? –
@NicoleGoebel: điều này có thể được sử dụng: http://stackoverflow.com/questions/31496628/in-bokeh-how-do-i-add-tooltips-to-a-timeseries-chart-hover-tool – bs123