是否可以像Pycharm一样在IDE中使用ipywidgets

问题描述 投票:0回答:1

我想交互式地可视化一些情节。现在有基于 Python 的可视化工具,可与 Jupyter notebook 或 .ipynb 文件一起使用。 当我在 pycharm IDE 中运行相同的程序时,它什么也没做:

import matplotlib.pyplot as plt
import numpy as np
from ipywidgets import interact, fixed
# from IPython.core.display import display

def display_center_effect(x, y, tx, point_list, xlim, ylim):
    tx.SetCenter((x, y))
    transformed_point_list = [tx.TransformPoint(p) for p in point_list]

    plt.scatter(
        list(np.array(transformed_point_list).T)[0],
        list(np.array(transformed_point_list).T)[1],
        marker="^",
        color="red",
        label="transformed points",
    )
    plt.scatter(
        list(np.array(point_list).T)[0],
        list(np.array(point_list).T)[1],
        marker="o",
        color="blue",
        label="original points",
    )
    plt.xlim(xlim)
    plt.ylim(ylim)
    plt.legend(loc=(0.25, 1.01))
# plt.show()

# 2D square centered on (0,0)
points = [
    np.array((-1.0, -1.0)),
    np.array((-1.0, 1.0)),
    np.array((1.0, 1.0)),
    np.array((1.0, -1.0)),
]

# Scale by 2
similarity = sitk.Similarity2DTransform()
similarity.SetScale(2)

interact(
    display_center_effect,
    x=(-10, 10),
    y=(-10, 10),
    tx=fixed(similarity),
    point_list=fixed(points),
    xlim=fixed((-10, 10)),
    ylim=fixed((-10, 10)),
)

此 MWE 运行但不显示任何绘图/图形。生成以下内容:

interactive(children=(IntSlider(value=0, description='x', max=10, min=-10), IntSlider(value=0, description='y', max=10, min=-10), Output()), _dom_classes=('widget-interact',))

我已经尝试实施

TKinter
IPython.core.display
等,但似乎没有任何效果。

jupyter-notebook pycharm ipywidgets
1个回答
0
投票

不幸的是这是 JetBrains 产品中的一个错误。一种可能的解决方法是使用非“内联”的 backend,即为绘图打开一个新窗口。根据您的操作系统,其中之一可能能够渲染绘图,同时允许您从 PyCharm 中操作小部件。

© www.soinside.com 2019 - 2024. All rights reserved.