Holoviews图表共享并输出时共享轴

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Holoviews图表共享并输出时共享轴相关的知识,希望对你有一定的参考价值。

我正在使用holoviews构建图表的仪表板,其中一些图表在Y轴上具有百分比,而其他图表则具有总和/计数等。当我尝试将所有创建的图表输出到html文件时,所有图表都会更改其y轴以匹配我的图表列表中第一个图表的轴。

例如:

  • 图1是一个和,值从0到1000
  • 图2为%
  • 图3是%

当我使用以下方法将这些图表合并到全息视图中时:

  • 图表=图表1 +图表2 +图表3

图表2和3的y轴与图表1相同

没有人知道为什么会这样以及如何解决这个问题,因此所有图表均使其各自的轴与他们要代表的内容相关。

谢谢!

答案
您需要使用选项axiswise = True如果希望每个图都有其独立的x轴和y轴。在holoviews常见问题解答中有一个简短的关于axiswise的参考:https://www.holoviews.org/FAQ.html这是我检查并可以正常运行的

代码示例:

# import libraries etc. import numpy as np import pandas as pd import holoviews as hv from holoviews import opts hv.extension('bokeh') # create some sample data df1 = pd.DataFrame({ 'x': np.random.rand(10), 'y': np.random.rand(10), }) df2 = pd.DataFrame({ 'x': np.random.rand(10) * 10, 'y': np.random.rand(10) * 10, }) # set axiswise=True so that every plot gets its own independent x- and y-axis plot1 = hv.Scatter(df1).opts(axiswise=True) plot2 = hv.Scatter(df2).opts(axiswise=True) plot1 + plot2 或者您也可以这样做:
plot1 = hv.Scatter(df1)
plot2 = hv.Scatter(df2)

(plot1 + plot2).opts(opts.Scatter(axiswise=True))

尝试我的代码示例时,

如果不起作用

您可能必须升级

到最新版本的holoviews。可以按照以下步骤进行:Install the latest git versions of holoviews, hvplot, panel, datashader and param

以上是关于Holoviews图表共享并输出时共享轴的主要内容,如果未能解决你的问题,请参考以下文章

共享轴并删除 matplotlib 子图中未使用的轴

片段之间的共享数据(父列表视图和子列表视图)

使用片段共享过渡时返回过渡无法正常工作

如何共享 Superset 仪表板或图表?

片段之间的共享元素转换

C 中的共享内存代码片段