具有不同列长度的散景 "source"
Bokeh "source" with different columns length
我正在尝试使用散景在同一图表中绘制多个时间序列。有些系列的长度会与其他系列不同,但我想保留它们。
此时,我收到警告,告诉我源的所有列的长度都不相同,但 Bokeh 似乎会自动调整大小。
另一件重要的事情,我需要在 相同的来源 中拥有时间序列的所有 'Y' 值,因为我在 JS 中使用回调为了创建和交互情节。
回调为:
callback = CustomJS(args=dict(source=source), code="""
// data contains the source.column_names keys
var data = source.get('data');
// f contains the name of the time series to be plotted
var f = cb_obj.get('value');
// For each key in the source, find the lines to be plotted
for (i = 0; i < Object.keys(data).length; i++) {
curr_key = Object.keys(data)[i];
// 'line' identifier is used to recognise columns of sources which represent Y values
if (curr_key.includes('line')) {
id_ = curr_key.split('_')[0];
associated_save = id_.concat('_save_y');
// If the time series is in the selected to be plotted, set the data to plot it
if (f.indexOf(curr_key) > -1) {
data[curr_key] = data[associated_save]
} else { // else, fixe to nan to erase it
data[curr_key] = 'nan'
}
}
}
source.trigger('change');
""")
算法是循环遍历源的 column_names 以绘制/或取消绘制相应的时间序列。
我可以在此处提供来源列表吗args=dict(source=source)
?我应该忽略警告,但是我的系列被删减了还是应该以其他方式处理它?
情节很好,但我正在尝试删除警告...
谢谢!
我主要看到两个选项:
将数据重新采样到相同的长度,但这可能并不容易,并且在很大程度上取决于数据的属性。 (如果插值或下采样可行等)
您可以将多个 line() (或任何字形)图添加到一个图中。意味着您将数据按相同的长度分组在多个数据框中。那么您的 Javascript 将需要进行一些重构。您可以迭代渲染器,这些渲染器是线,并且您有对相应源的引用。或者您可以在 javascript 中禁用渲染器(以隐藏情节)
我正在尝试使用散景在同一图表中绘制多个时间序列。有些系列的长度会与其他系列不同,但我想保留它们。
此时,我收到警告,告诉我源的所有列的长度都不相同,但 Bokeh 似乎会自动调整大小。
另一件重要的事情,我需要在 相同的来源 中拥有时间序列的所有 'Y' 值,因为我在 JS 中使用回调为了创建和交互情节。
回调为:
callback = CustomJS(args=dict(source=source), code="""
// data contains the source.column_names keys
var data = source.get('data');
// f contains the name of the time series to be plotted
var f = cb_obj.get('value');
// For each key in the source, find the lines to be plotted
for (i = 0; i < Object.keys(data).length; i++) {
curr_key = Object.keys(data)[i];
// 'line' identifier is used to recognise columns of sources which represent Y values
if (curr_key.includes('line')) {
id_ = curr_key.split('_')[0];
associated_save = id_.concat('_save_y');
// If the time series is in the selected to be plotted, set the data to plot it
if (f.indexOf(curr_key) > -1) {
data[curr_key] = data[associated_save]
} else { // else, fixe to nan to erase it
data[curr_key] = 'nan'
}
}
}
source.trigger('change');
""")
算法是循环遍历源的 column_names 以绘制/或取消绘制相应的时间序列。
我可以在此处提供来源列表吗args=dict(source=source)
?我应该忽略警告,但是我的系列被删减了还是应该以其他方式处理它?
情节很好,但我正在尝试删除警告...
谢谢!
我主要看到两个选项:
将数据重新采样到相同的长度,但这可能并不容易,并且在很大程度上取决于数据的属性。 (如果插值或下采样可行等)
您可以将多个 line() (或任何字形)图添加到一个图中。意味着您将数据按相同的长度分组在多个数据框中。那么您的 Javascript 将需要进行一些重构。您可以迭代渲染器,这些渲染器是线,并且您有对相应源的引用。或者您可以在 javascript 中禁用渲染器(以隐藏情节)