在Bokeh中有没有比下面的代码更好的方法来复制matplotlibs scatter_matrix(根据所有数据绘制所有数据):
defaults.width = 100
defaults.height = 100
scatter_plots = []
y_max = len(dataset.columns)-1
for i, y_col in enumerate(dataset):
for j, x_col in enumerate(dataset):
df = pd.DataFrame({x_col: dataset[x_col].tolist(), y_col: dataset[y_col].tolist()})
p = Scatter(df, x=x_col, y=y_col)
if j > 0:
p.yaxis.axis_label = ""
p.yaxis.visible = False
if i < y_max:
p.xaxis.axis_label = ""
p.xaxis.visible = False
scatter_plots.append(p)
grid = gridplot(scatter_plots, ncols = len(dataset.columns))
show(grid)
特别是,我希望能够缩放和平移整个绘图网格作为一个实体,而不是缩放/平移鼠标悬停的子地块。在
通常,要链接平移/缩放,可以共享要在绘图之间链接的范围。用户指南中对此进行了说明:
https://docs.bokeh.org/en/latest/docs/user_guide/interaction/linking.html
您也可以查看这个链接的sprom示例:
https://github.com/bokeh/bokeh/blob/master/examples/models/iris_splom.py
该示例更长/更详细,因为它使用低级的}。在
bokeh.models
API。重要的部分是它在创建的ever plot上重用范围xdr
和{在您的特殊情况下,由于高级图表不接受预先设置的范围参数(IIRC),我认为您必须“事后”修改图表,因此可能需要类似于:
万一有用的话,我也面临同样的问题。实际上,您并不希望所有轴链接-而是希望每行y轴链接,每个列x轴链接。我很惊讶这不是一个内置的bokeh功能。即使是iris这个例子也搞错了:
http://docs.bokeh.org/en/latest/docs/gallery/iris_splom.html
下面是我使用的代码片段:
相关问题 更多 >
编程相关推荐