我正在Holoviews中尝试以下示例代码,以创建选择下拉列表并根据选择更新图形。

macro_df = pd.read_csv('http://assets.holoviews.org/macro.csv', '\t')
key_dimensions   = [('year', 'Year'), ('country', 'Country')]
value_dimensions = [('unem', 'Unemployment'), ('capmob', 'Capital Mobility'),
                    ('gdp', 'GDP Growth'), ('trade', 'Trade')]
macro = hv.Table(macro_df, key_dimensions, value_dimensions)

%%opts Curve (color='k') Scatter [color_index=2 size_index=2 scaling_factor=1.4] (cmap='Blues' edgecolors='k')
gdp_curves = macro.to.curve('Year', 'GDP Growth')
gdp_curves


如下图。上面的代码没有UI组件或其控件的明确定义。我们如何以及在何处将“国家”声明为选择下拉列表?我们如何配置选项,以便将“年份”设置为下拉列表等?

python - Holoviews:代码没有明确定义的UI组件-LMLPHP

最佳答案

在上面的示例中,“国家”下拉列表是隐式生成的。这是因为hv.Table具有两个所谓的关键维度“年”和“国家”(您应将其视为独立变量)。因此,当您运行macro.to.curve('Year', 'GDP Growth')时,它将知道还有另一个应分组的自变量(“国家”)。我们可以通过以下方式扩展.to声明:macro.to(hv.Curve, 'Year', 'GDP Growth', groupby='Country'),它基本上表示“将我的宏表转换为一组hv.Curve元素,这些元素为每个'国家/地区'按'年份'绘制'GDP增长'。

07-24 19:39