使用 bqplot 将颜色图应用于线(或线段)
Apply colormap to line (or segments) using bqplot
是否可以使用 bqplot
将颜色图应用于线条?
使用matplotlib
,可以将线分割成线段,整理它们并使用matplotlib.collections.LineCollection(segments, cmap='RdBu').set_array(c)
应用颜色图,然后用axis.add_collection()
.[=15=绘制全部]
但是,我在 bqplot
中找不到等效的方法。我错过了什么吗?
flexline 标记可以做到这一点。请参阅下面的示例(摘自 https://github.com/bloomberg/bqplot/blob/master/examples/Marks/Object%20Model/FlexLine.ipynb)
from bqplot import *
## Get Data
dates = np.arange('2005-02', '2005-03', dtype='datetime64[D]')
size = len(dates)
spx = 100 + 5 * np.cumsum(np.random.randn(size))
vix = 10 + np.cumsum(np.random.randn(size))
## Displaying extra dimension with color
lin_x = DateScale()
lin_y = LinearScale()
col_line = ColorScale(colors=['green', 'white', 'red'])
ax_x = Axis(scale=lin_x, label='Date', label_location='end')
ax_y = Axis(scale=lin_y, orientation='vertical', label='Index', label_offset='4ex')
ax_col = ColorAxis(label='Vol', scale=col_line, tick_format='0.2f')
fig_margin = dict(top=50, left=80, right=20, bottom=70)
fl = FlexLine(x=dates, y=spx, color=vix,
scales={'x': lin_x, 'color': col_line, 'y': lin_y})
Figure(marks=[fl], axes=[ax_x, ax_y, ax_col], fig_margin=fig_margin)
是否可以使用 bqplot
将颜色图应用于线条?
使用matplotlib
,可以将线分割成线段,整理它们并使用matplotlib.collections.LineCollection(segments, cmap='RdBu').set_array(c)
应用颜色图,然后用axis.add_collection()
.[=15=绘制全部]
但是,我在 bqplot
中找不到等效的方法。我错过了什么吗?
flexline 标记可以做到这一点。请参阅下面的示例(摘自 https://github.com/bloomberg/bqplot/blob/master/examples/Marks/Object%20Model/FlexLine.ipynb)
from bqplot import *
## Get Data
dates = np.arange('2005-02', '2005-03', dtype='datetime64[D]')
size = len(dates)
spx = 100 + 5 * np.cumsum(np.random.randn(size))
vix = 10 + np.cumsum(np.random.randn(size))
## Displaying extra dimension with color
lin_x = DateScale()
lin_y = LinearScale()
col_line = ColorScale(colors=['green', 'white', 'red'])
ax_x = Axis(scale=lin_x, label='Date', label_location='end')
ax_y = Axis(scale=lin_y, orientation='vertical', label='Index', label_offset='4ex')
ax_col = ColorAxis(label='Vol', scale=col_line, tick_format='0.2f')
fig_margin = dict(top=50, left=80, right=20, bottom=70)
fl = FlexLine(x=dates, y=spx, color=vix,
scales={'x': lin_x, 'color': col_line, 'y': lin_y})
Figure(marks=[fl], axes=[ax_x, ax_y, ax_col], fig_margin=fig_margin)