Viewer() 中的 datamin 和 datamax 不起作用

datamin and datamax in Viewer() did not work

我在fipy中使用了上面的代码,但是颜色条的范围始终没有改变(总是显示[-1,1])。 我的版本是 Python 3.6.7 和 matlablib 3.1.1.

#create a viewer to see the results
    if __name__ == '__main__':
        viewer = Viewer(vars=psi, datamin=-0.01, datamax=0)
        viewer.plot()

我尝试了以下方法: 1、我改了"C:\Users\Lenovo\fipy\examples\diffusion"里的代码,比如改了"datamin=-0.01, datamax=0"。是行不通的。 2、直接使用"MatplotlibViewer"。是行不通的。 3、用过“GnuplotViewer”。无法安装在Python。

目前,FiPy 中存在一个错误,导致在为 2D 图渲染颜色条时不使用 datamindatamax 值。问题描述 here and here。但是,有一个解决方法。

此示例呈现的绘图应包含三个最大值大于 3 的单元格,但在 3 处被截断。

from fipy import Grid2D, CellVariable, Viewer
from fipy.viewers.matplotlibViewer.matplotlibViewer import _ColorBar

m = Grid2D(nx=3, ny=3)

v = CellVariable(mesh=m)
v[:] = m.x * m.y

vi = Viewer(v, colorbar=None, datamin=0.0, datamax=3.0)
vi.colorbar = _ColorBar(viewer=vi, vmin=0.0, vmax=3.0)

vi.plot()

input('stopped')

有必要使用 datamindatamax 参数并将 colorbar 参数设置为 None 然后添加带有正确 vmin 的颜色条和 vmax 值,因为这些值在 FiPy 中未正确设置。