0

我在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中安装。

4

1 回答 1

1

目前,FiPy 中存在一个错误,即在渲染 2D 绘图的颜色条时不使用datamin和值。datamax该问题在此处此处进行了描述。但是,有一种解决方法。

此示例渲染一个图,该图应包含三个最大值大于 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')

有必要使用dataminanddatamax参数并将参数设置colorbarNone然后添加具有正确vminvmax值的颜色栏,因为这些在 FiPy 中没有正确设置。

于 2019-10-21T16:47:49.550 回答