Python散景:同一行上有多个颜色段

我正在使用 python 3.5和散景0.12.1,我试图在不同的段上绘制一个具有多种颜色的简单线条.基本上我希望线条具有基于列值的不同颜色.
这是我的代码的简化版本:

import numpy as np
from numpy import vectorize
import pandas as pd
from bokeh.plotting import figure,show,output_file


def f(x):
    return 2 * x


def color(x):
    if x < 20:
        return 0
    if 20 <= x < 60:
        return 1
    if 60 <= x < 80:
        return 0
    else:
        return 1


v_color = vectorize(color)
x = np.arange(0,100,1)
data = {'x': x,'y': f(x),'colors': v_color(x)}
df = pd.DataFrame(data=data)
# print(df)

p = figure(title="Line example")

p.line(df['x'],df['y'],legend="y=f(x)",# line_color="tomato",line_color="olivedrab",line_width=2)

p.legend.location = "top_left"

output_file("basic_line_test.html",title="line plot example")

show(p)  # open a browser

基本上该行应该有一种颜色,当’colors’列为0时,我们会说’olivedrab’,当值为1时,可以说’tomato’.
我怎样才能做到这一点?

解决方法

截至bokeh 0.12.1,目前尚不支持功能.线条一次只能有一种颜色.您的下一个最佳选择是尝试multi_line或细分字形功能,但这样做会更加冗长(您必须计算并提供eery单个细分的起点/终点).

这可能会在未来的某个版本中添加为一项功能,我建议您在项目GitHub issue tracker上提交功能请求.

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...