我目前正在尝试使用matplotlib后端的holoviews + datashader。我正在使用的数据具有非常不同的x和y范围,结果是数据分析器图无法伸展。我尝试过使用的opts和output关键字可以解决问题只有全息视图而不是一旦应用数据分区。
例如:
import holoviews as hv
hv.extension('matplotlib')
import numpy as np
from holoviews.operation.datashader import datashade
np.random.seed(1)
positions = np.random.multivariate_normal((0,0),[[0.1,0.1], [0.1,50.0]], (1000000,))
positions2 = np.random.multivariate_normal((0,0),[[0.1,0.1], [0.1,50]], (1000,))
points = hv.Points(positions,label="Points")
points2 = hv.Points(positions2,label="Points2")
plot = datashade(points) + points2
plot
生成: datashader and points output
我可以使用fig_size opts关键字
控制点的大小e.g. points2(plot=dict(fig_size=200))
但同样不适用于数据分析器图。任何有关使用matplotlib更改此类数据分析器数字大小的建议都将非常感激。理想情况下,我想使用函数而不是单元格魔术关键字,因此可以将代码移植到脚本中。
谢谢!
答案 0 :(得分:0)
在HoloViews中更改matplotlib图的大小始终由外部容器控制,因此当您拥有布局时,可以更改该对象的大小,例如:在你的例子中:
plot = datashade(points) + points2
plot.opts(plot=dict(fig_size=200))
可能令人困惑的另一部分是RGB元素(数据分区操作返回的内容)默认使用aspect ='equal'。您可以通过将方面设置为“方形”或显式宽高比来更改它:
datashade(points).opts(plot=dict(fig_size=200, aspect='square'))
把它放在一起你可能想做这样的事情:
plot = datashade(points).opts(plot=dict(aspect='square')) + points2
plot.opts(plot=dict(fig_size=200))