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 图渲染颜色条时不使用 datamin
和 datamax
值。问题描述 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')
有必要使用 datamin
和 datamax
参数并将 colorbar
参数设置为 None
然后添加带有正确 vmin
的颜色条和 vmax
值,因为这些值在 FiPy 中未正确设置。
我在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 图渲染颜色条时不使用 datamin
和 datamax
值。问题描述 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')
有必要使用 datamin
和 datamax
参数并将 colorbar
参数设置为 None
然后添加带有正确 vmin
的颜色条和 vmax
值,因为这些值在 FiPy 中未正确设置。