5

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

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

这可以用 .hist() 命令很好地完成,不幸的是,生成的对象 ( AdjointLayout) 不能嵌套在HoloMaporGridSpace中,所以我只能使用自己的设备。

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').

我怀疑它是方括号中的%%optsor .opts()plot 选项之一,但我找不到记录的可用选项(链接已损坏,或指向API 指南的顶部,我没有找到正确的部分API。)

4

2 回答 2

6
%%opts Histogram [invert_axes=True]

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

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

于 2017-08-31T03:55:10.437 回答
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,  )
于 2019-10-17T07:18:54.097 回答