Pandas 用bokeh绘制可变数量的直线/曲线

Pandas 用bokeh绘制可变数量的直线/曲线,pandas,bokeh,Pandas,Bokeh,我用许多y列y1、y2、y3生成熊猫数据帧。。。和一个x列。x列总是相同的。我希望在同一张图上绘制所有这些x-y线/曲线 我可以让bokeh根据数据框中y列的数量绘制行数吗?这样脚本的打印部分就不依赖于固定数量的y列,并且可以处理任何具有“n”列的数据帧 您可以直接循环: import pandas as pd df = pd.DataFrame({ 'x' : [1,2,3], 'y0' : [1,3,2], 'y1' : [2,1,3], }) colors = ['red

我用许多y列y1、y2、y3生成熊猫数据帧。。。和一个x列。x列总是相同的。我希望在同一张图上绘制所有这些x-y线/曲线

我可以让bokeh根据数据框中y列的数量绘制行数吗?这样脚本的打印部分就不依赖于固定数量的y列,并且可以处理任何具有“n”列的数据帧

您可以直接循环:

import pandas as pd

df = pd.DataFrame({
  'x'  : [1,2,3],
  'y0' : [1,3,2],
  'y1' : [2,1,3],
})

colors = ['red', 'blue']

from bokeh.io import show
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure

source = ColumnDataSource(df)
p = figure(plot_height=250)

i = 0
for name in df.columns:
    if not name.startswith('y'): continue
    p.line('x', name, color=colors[i], source=source)
    i += 1

show(p)

一个问题:当我从p.line变为p.circle,并且有12个y列,每个y列有7个点,每个点期望在绘图中有84个点时,我只看到出现在x=0处的点。你知道为什么会这样,为什么所有的点都没有显示出来吗?另外,当我尝试用下面的线添加图例时,无论我使用p.line还是p.circle,绘图都不会生成它。p、 legend.location=左上方p.legend.单击\u policy=隐藏请发布新问题的新主题。将Q和A置于评论之上会让laters的用户更难关注这个网站。