Hello Joseph, Thanks a lot for the information. I will try this method and see what I can do with it.
Best regards, Shivang Agarwal On Mon 19 Nov, 2018, 7:35 PM Joseph Weston <[email protected] wrote: > Hi, > > > Thank you for the quick response. When I try *kwant.plotter.map(sys, > value, vmin=0, vmax=2) *I get the following error: > > ValueError: Only 2D systems can be plotted this way. > > My system is a 3D system. I would be glad if you could help me out in this > regard. > > > > As the error message says, 'kwant.plotter.map' doesn't work for 3D > systems. Matplotlib does not have very good support for 3D plots in any > case, and it's not clear that there's a general "best way" of plotting a 3D > scalar field. > > Probably your best bet will be to reduce the dimensionality of what you're > trying to plot. > > Failing that, you could try using 'kwant.plotter.interpolate_density' > (available in the current development version of Kwant and in the > soon-to-be-released Kwant 1.4) with the 'ipyvolume' [1] package; something > like: > > > import ipyvolume > > ... > > field, box = kwant.plotter.interpolate_density(syst, some_density) > > field = field.squeeze() # ipyvolume requires a rank-3 array > > ipyvolume.quickvolshow(field) > > > Note that the above code is incomplete and untested; it's just to show how > you could glue the relevant pieces together. > > > Happy Kwanting, > > Joe > > > > [1]: https://ipyvolume.readthedocs.io/en/latest/ >
