test_plot.py 2.71 KB
Newer Older
Martin Reinecke's avatar
Martin Reinecke committed
1
2
3
4
5
6
7
8
9
10
11
12
13
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
Philipp Arras's avatar
Philipp Arras committed
14
# Copyright(C) 2013-2020 Max-Planck-Society
Martin Reinecke's avatar
Martin Reinecke committed
15
16
17
#
# NIFTy is being developed at the Max-Planck-Institut fuer Astrophysik.

Philipp Arras's avatar
Philipp Arras committed
18
19
from itertools import count

Martin Reinecke's avatar
Martin Reinecke committed
20
21
import numpy as np

Martin Reinecke's avatar
5->6    
Martin Reinecke committed
22
import nifty6 as ift
Philipp Arras's avatar
Philipp Arras committed
23

24
from .common import setup_function, teardown_function
Martin Reinecke's avatar
Martin Reinecke committed
25

Philipp Arras's avatar
Philipp Arras committed
26
27
name = (f'plot{nr}.png' for nr in count())

Martin Reinecke's avatar
Martin Reinecke committed
28
29
30

def test_plots():
    # FIXME Write to temporary folder?
Philipp Arras's avatar
Philipp Arras committed
31
32
33
34
    rg_space1 = ift.makeDomain(ift.RGSpace((10,)))
    rg_space2 = ift.makeDomain(ift.RGSpace((8, 6), distances=1))
    hp_space = ift.makeDomain(ift.HPSpace(5))
    gl_space = ift.makeDomain(ift.GLSpace(10))
Martin Reinecke's avatar
Martin Reinecke committed
35
36
37

    fft = ift.FFTOperator(rg_space2)

38
39
40
41
42
    field_rg1_1 = ift.from_random(rg_space1, 'normal')
    field_rg1_2 = ift.from_random(rg_space1, 'normal')
    field_rg2 = ift.from_random(rg_space2, 'normal')
    field_hp = ift.from_random(hp_space, 'normal')
    field_gl = ift.from_random(gl_space, 'normal')
Martin Reinecke's avatar
Martin Reinecke committed
43
44
45
46
    field_ps = ift.power_analyze(fft.times(field_rg2))

    plot = ift.Plot()
    plot.add(field_rg1_1, title='Single plot')
Philipp Arras's avatar
Philipp Arras committed
47
    plot.output(name=next(name))
Martin Reinecke's avatar
Martin Reinecke committed
48
49
50
51
52
53

    plot = ift.Plot()
    plot.add(field_rg2, title='2d rg')
    plot.add([field_rg1_1, field_rg1_2], title='list 1d rg', label=['1', '2'])
    plot.add(field_rg1_2, title='1d rg, xmin, ymin', xmin=0.5, ymin=0.,
             xlabel='xmin=0.5', ylabel='ymin=0')
Philipp Arras's avatar
Philipp Arras committed
54
    plot.output(title='Three plots', name=next(name))
Martin Reinecke's avatar
Martin Reinecke committed
55
56
57
58
59
60
61

    plot = ift.Plot()
    plot.add(field_hp, title='HP planck-color', colormap='Planck-like')
    plot.add(field_rg1_2, title='1d rg')
    plot.add(field_ps)
    plot.add(field_gl, title='GL')
    plot.add(field_rg2, title='2d rg')
Philipp Arras's avatar
Philipp Arras committed
62
    plot.output(nx=2, ny=3, title='Five plots', name=next(name))
Lukas Platz's avatar
Lukas Platz committed
63
64
65
66
67
68
69
70
71


def test_mf_plot():
    x_space = ift.RGSpace((16, 16))
    f_space = ift.RGSpace(4)

    d1 = ift.DomainTuple.make([x_space, f_space])
    d2 = ift.DomainTuple.make([f_space, x_space])

72
    f1 = ift.from_random(d1, 'normal')
Lukas Platz's avatar
Lukas Platz committed
73
74
75
76
77
    f2 = ift.makeField(d2, np.moveaxis(f1.val, -1, 0))

    plot = ift.Plot()
    plot.add(f1, block=False, title='f_space_idx = 1')
    plot.add(f2, freq_space_idx=0, title='f_space_idx = 0')
Philipp Arras's avatar
Philipp Arras committed
78
    plot.output(nx=2, ny=1, title='MF-Plots, should look identical', name=next(name))