有没有办法在Holoviews中旋转90°?
我有兴趣知道如何做到这一点,但我的直接目的是生成一个旋转的直方图,将频率放在水平上,键值垂直于布局旁边的布局。
这可以通过.hist()命令很好地完成,不幸的是,生成的对象(AdjointLayout
)不能嵌套在HoloMap
或GridSpace
中,所以我我离开了自己的设备。
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的正确部分。)
答案 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, )