如何在Holoviews中旋转元素

时间:2017-08-26 21:36:42

标签: python holoviews

有没有办法在Holoviews中旋转90°?

我有兴趣知道如何做到这一点,但我的直接目的是生成一个旋转的直方图,将频率放在水平上,键值垂直于布局旁边的布局。

这可以通过.hist()命令很好地完成,不幸的是,生成的对象(AdjointLayout)不能嵌套在HoloMapGridSpace中,所以我我离开了自己的设备。

import numpy as np
import holoviews as hv
hv.extension('bokeh')

data1=np.random.randn(1000)
data2=np.random.rand(1000)

dataDict1={1:hv.Scatter(data1)+hv.Histogram(np.histogram(data1),kdims=['y']),
           2:hv.Scatter(data2)+hv.Histogram(np.histogram(data2),kdims=['y'])}

dataDict2={1:hv.Scatter(data1).hist(), 2:hv.Scatter(data2).hist()}

hv.HoloMap(dataDict1).collate()  #yay!
hv.HoloMap(dataDict2).collate()  #TypeError: HoloMap does not accept AdjointLayout type, data elements have to be a ('ViewableElement', 'NdMapping', 'Layout').

我怀疑它是方括号中的%%opts.opts()绘图选项之一,但我找不到记录的可用选项(链接是broken,或指向top of the API guide并且我没有找到API的正确部分。)

2 个答案:

答案 0 :(得分:2)

%%opts Histogram [invert_axes=True]

invert_xaxis反转轴,但invert_axes交换x和y轴。

通过hv.help()机制可以更好地记录可用选项。即。 hv.help(hv.Histogram)

答案 1 :(得分:0)

要在绘图和代码结构中拥有更多控制权,请直接在应设置的位置进行选择:

#%%opts Bars [invert_axes=True]

import pandas as pd
import holoviews as hv
hv.extension('bokeh', 'matplotlib') # hv.notebook_extension('bokeh', 'matplotlib')

df = pd.DataFrame({'A': list(range(10,15)), 'B' : list(reversed(range(20,25)))})
hv.Bars(pd.melt(df.reset_index(), ['index']), ['index', 'variable'], 'value').opts(alpha= .7 ,  invert_axes= True, invert_yaxis= True,  )