我想为 hvplots 生成的图设置默认选项。
通常在全息视图中我会这样做来为每个图设置默认值:
import holoviews as hv
from holoviews import opts
hv.extension('bokeh')
opts.defaults(opts.Curve( height=400, width=900 ,show_grid=True))
Run Code Online (Sandbox Code Playgroud)
现在我正在使用 hvplots,导入已成为基于 xarray 的绘图的以下内容
import xarray as xr
import hvplot.xarray
Run Code Online (Sandbox Code Playgroud)
如果我有一个 xarray 数据集并且我想绘制其中一个维度,那么我使用这个
ds.myDims.hvplot()
Run Code Online (Sandbox Code Playgroud)
然而,这给出了一个具有默认宽度且没有网格线的图。要添加它,我需要指定绘图的选项。
ds.myDims.hvplot(height=400, width=900,grid=True)
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想全局设置高度、宽度、网格等,就像在全息视图中一样,所以我不必为每个绘图指定它。
我有一个大数据集想要探索。但是我不想创建多个图。我只想要一个图,我可以在其中交互地更改用于 x 和 y 轴的列,并且图会自行更新。
我正在尝试使用 Python/Bokeh 来执行此操作,使用 Bokeh 将我的脚本提供给浏览器。但是我不清楚如何更新情节。我看到很多更改底层数据源的示例,但我不想这样做,我只想更改正在绘制的列。
我在下面做了一个简单的例子来说明我想要做的事情。它使用两个“选择”小部件来选择数据源的 x 和 y 列。这些回调尝试更改“Line”字形所引用的列。然而这似乎不起作用。任何的建议都受欢迎。
import numpy as np
from bokeh.models import ColumnDataSource
from bokeh.plotting import Figure
from bokeh.models.widgets import Select,TextInput
from bokeh.models.glyphs import Line
from bokeh.models.layouts import HBox, VBox
from bokeh.io import curdoc
#==============================================================================
#%% Define some Data
#==============================================================================
N = 200
# Define the data to be used
x = np.linspace(0,4.*np.pi,N)
y = 3*np.cos(2*np.pi*x + np.pi*0.2)
z = 0.5*np.sin(2*np.pi*0.8*x + np.pi*0.4)
source = ColumnDataSource({'x':x,'cos':y,'sin':z})
#==============================================================================
#%% Layout
#============================================================================== …Run Code Online (Sandbox Code Playgroud)