首页 > 解决方案 > 用散景绘制可变数量的线/曲线

问题描述

我生成带有许多“y”列(y1、y2、y3 ...)和一个“x”列的 pandas 数据框。x 列始终相同。我希望在同一张图上绘制所有这些 xy 线/曲线。

我可以使散景将行数绘制为我的数据框中有多少“y”列的函数吗?这样脚本的绘图部分不依赖于固定数量的“y”列,并且可以使用任何具有“n”列的数据框?

标签: pandasbokeh

解决方案


你可以循环:

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)

在此处输入图像描述


推荐阅读