示例#1
0
def test_profile_plot():
    fields = ('density', 'temperature', 'velocity_x', 'velocity_y',
              'velocity_z')
    units = ('g/cm**3', 'K', 'cm/s', 'cm/s', 'cm/s')
    test_ds = fake_random_ds(16, fields=fields, units=units)
    regions = [test_ds.region([0.5] * 3, [0.4] * 3, [0.6] * 3), test_ds.all_data()]
    pr_fields = [('density', 'temperature'), ('density', 'velocity_x'),
                 ('temperature', 'cell_mass'), ('density', 'radius'),
                 ('velocity_magnitude', 'cell_mass')]
    profiles = []
    for reg in regions:
        for x_field, y_field in pr_fields:
            profiles.append(ProfilePlot(reg, x_field, y_field))
            profiles.append(ProfilePlot(reg, x_field, y_field,
                                        fractional=True, accumulation=True))
            p1d = create_profile(reg, x_field, y_field)
            profiles.append(ProfilePlot.from_profiles(p1d))
    p1 = create_profile(test_ds.all_data(), 'density', 'temperature')
    p2 = create_profile(test_ds.all_data(), 'density', 'velocity_x')
    profiles.append(ProfilePlot.from_profiles(
        [p1, p2], labels=['temperature', 'velocity']))
    profiles[0]._repr_html_()
    for idx, plot in enumerate(profiles):
        test_prefix = "%s_%s" % (plot.plots.keys(), idx)
        yield compare(test_ds, plot, test_prefix=test_prefix,
                      test_name="profile_plots")
示例#2
0
 def test_profile_plot(self):
     fields = ('density', 'temperature', 'velocity_x', 'velocity_y',
               'velocity_z')
     units = ('g/cm**3', 'K', 'cm/s', 'cm/s', 'cm/s')
     test_ds = fake_random_ds(16, fields=fields, units=units)
     regions = [
         test_ds.region([0.5] * 3, [0.4] * 3, [0.6] * 3),
         test_ds.all_data()
     ]
     pr_fields = [('density', 'temperature'), ('density', 'velocity_x'),
                  ('temperature', 'cell_mass'), ('density', 'radius'),
                  ('velocity_magnitude', 'cell_mass')]
     profiles = []
     for reg in regions:
         for x_field, y_field in pr_fields:
             profiles.append(ProfilePlot(reg, x_field, y_field))
             profiles.append(
                 ProfilePlot(reg,
                             x_field,
                             y_field,
                             fractional=True,
                             accumulation=True))
             p1d = create_profile(reg, x_field, y_field)
             profiles.append(ProfilePlot.from_profiles(p1d))
     p1 = create_profile(test_ds.all_data(), 'density', 'temperature')
     p2 = create_profile(test_ds.all_data(), 'density', 'velocity_x')
     profiles.append(
         ProfilePlot.from_profiles([p1, p2],
                                   labels=['temperature', 'velocity']))
     profiles[0]._repr_html_()
     for p in profiles:
         for fname in TEST_FLNMS:
             assert_fname(p.save(fname)[0])
示例#3
0
    def setUpClass(cls):
        fields = ('density', 'temperature', 'velocity_x', 'velocity_y',
                  'velocity_z')
        units = ('g/cm**3', 'K', 'cm/s', 'cm/s', 'cm/s')
        test_ds = fake_random_ds(64, fields=fields, units=units)
        regions = [test_ds.region([0.5]*3, [0.4]*3, [0.6]*3), test_ds.all_data()]
        profiles = []
        phases = []
        pr_fields = [('density', 'temperature'), ('density', 'velocity_x'),
                     ('temperature', 'cell_mass'), ('density', 'radius'),
                     ('velocity_magnitude', 'cell_mass')]
        ph_fields = [('density', 'temperature', 'cell_mass'),
                     ('density', 'velocity_x', 'cell_mass'),
                     ('radius', 'temperature', 'velocity_magnitude')]
        for reg in regions:
            for x_field, y_field in pr_fields:
                profiles.append(ProfilePlot(reg, x_field, y_field))
                profiles.append(ProfilePlot(reg, x_field, y_field,
                                            fractional=True, accumulation=True))
                p1d = create_profile(reg, x_field, y_field)
                profiles.append(ProfilePlot.from_profiles(p1d))
            for x_field, y_field, z_field in ph_fields:
                # set n_bins to [16, 16] since matplotlib's postscript
                # renderer is slow when it has to write a lot of polygons
                phases.append(PhasePlot(reg, x_field, y_field, z_field,
                                        x_bins=16, y_bins=16))
                phases.append(PhasePlot(reg, x_field, y_field, z_field,
                                        fractional=True, accumulation=True,
                                        x_bins=16, y_bins=16))
                p2d = create_profile(reg, [x_field, y_field], z_field,
                                     n_bins=[16, 16])
                phases.append(PhasePlot.from_profile(p2d))
        pp = PhasePlot(test_ds.all_data(), 'density', 'temperature', 'cell_mass')
        pp.set_xlim(0.3, 0.8)
        pp.set_ylim(0.4, 0.6)
        pp._setup_plots()
        xlim = pp.plots['cell_mass'].axes.get_xlim()
        ylim = pp.plots['cell_mass'].axes.get_ylim()
        assert_array_almost_equal(xlim, (0.3, 0.8))
        assert_array_almost_equal(ylim, (0.4, 0.6))
        phases.append(pp)

        p1 = create_profile(test_ds.all_data(), 'density', 'temperature')
        p2 = create_profile(test_ds.all_data(), 'density', 'velocity_x')
        profiles.append(ProfilePlot.from_profiles(
            [p1, p2], labels=['temperature', 'velocity']))

        cls.profiles = profiles
        cls.phases = phases
        cls.ds = test_ds
示例#4
0
 def plot(self):
     r"""
     This returns a :class:~yt.visualization.profile_plotter.ProfilePlot
     with the fields that have been added to this object.
     """
     from yt.visualization.profile_plotter import ProfilePlot
     return ProfilePlot.from_profiles(self)
 def setUpClass(cls):
     fields = ('density', 'temperature', 'velocity_x', 'velocity_y',
               'velocity_z')
     units = ('g/cm**3', 'K', 'cm/s', 'cm/s', 'cm/s')
     test_ds = fake_random_ds(64, fields=fields, units=units)
     regions = [test_ds.region([0.5]*3, [0.4]*3, [0.6]*3), test_ds.all_data()]
     profiles = []
     phases = []
     pr_fields = [('density', 'temperature'), ('density', 'velocity_x'),
                  ('temperature', 'cell_mass'), ('density', 'radius'),
                  ('velocity_magnitude', 'cell_mass')]
     ph_fields = [('density', 'temperature', 'cell_mass'),
                  ('density', 'velocity_x', 'cell_mass'),
                  ('radius', 'temperature', 'velocity_magnitude')]
     for reg in regions:
         for x_field, y_field in pr_fields:
             profiles.append(ProfilePlot(reg, x_field, y_field))
             profiles.append(ProfilePlot(reg, x_field, y_field,
                                         fractional=True, accumulation=True))
             p1d = create_profile(reg, x_field, y_field)
             profiles.append(ProfilePlot.from_profiles(p1d))
         for x_field, y_field, z_field in ph_fields:
             # set n_bins to [16, 16] since matplotlib's postscript
             # renderer is slow when it has to write a lot of polygons
             phases.append(PhasePlot(reg, x_field, y_field, z_field,
                                     x_bins=16, y_bins=16))
             phases.append(PhasePlot(reg, x_field, y_field, z_field,
                                     fractional=True, accumulation=True,
                                     x_bins=16, y_bins=16))
             p2d = create_profile(reg, [x_field, y_field], z_field,
                                  n_bins=[16, 16])
             phases.append(PhasePlot.from_profile(p2d))
     cls.profiles = profiles
     cls.phases = phases
     cls.ds = test_ds
示例#6
0
def test_profile_plot():
    fields = ("density", "temperature", "velocity_x", "velocity_y",
              "velocity_z")
    units = ("g/cm**3", "K", "cm/s", "cm/s", "cm/s")
    test_ds = fake_random_ds(16, fields=fields, units=units)
    regions = [
        test_ds.region([0.5] * 3, [0.4] * 3, [0.6] * 3),
        test_ds.all_data()
    ]
    pr_fields = [
        [("gas", "density"), ("gas", "temperature")],
        [("gas", "density"), ("gas", "velocity_x")],
        [("gas", "temperature"), ("gas", "mass")],
        [("gas", "density"), ("index", "radius")],
        [("gas", "velocity_magnitude"), ("gas", "mass")],
    ]
    profiles = []
    for reg in regions:
        for x_field, y_field in pr_fields:
            profiles.append(ProfilePlot(reg, x_field, y_field))
            profiles.append(
                ProfilePlot(reg,
                            x_field,
                            y_field,
                            fractional=True,
                            accumulation=True))
            p1d = create_profile(reg, x_field, y_field)
            profiles.append(ProfilePlot.from_profiles(p1d))
    p1 = create_profile(test_ds.all_data(), ("gas", "density"),
                        ("gas", "temperature"))
    p2 = create_profile(test_ds.all_data(), ("gas", "density"),
                        ("gas", "velocity_x"))
    profiles.append(
        ProfilePlot.from_profiles([p1, p2], labels=["temperature",
                                                    "velocity"]))
    profiles[0]._repr_html_()
    for idx, plot in enumerate(profiles):
        test_prefix = f"{plot.plots.keys()}_{idx}"
        yield compare(test_ds,
                      plot,
                      test_prefix=test_prefix,
                      test_name="profile_plots")
示例#7
0
 def setUpClass(cls):
     fields = ('density', 'temperature', 'velocity_x', 'velocity_y',
               'velocity_z')
     units = ('g/cm**3', 'K', 'cm/s', 'cm/s', 'cm/s')
     test_ds = fake_random_ds(64, fields=fields, units=units)
     regions = [
         test_ds.region([0.5] * 3, [0.4] * 3, [0.6] * 3),
         test_ds.all_data()
     ]
     profiles = []
     phases = []
     pr_fields = [('density', 'temperature'), ('density', 'velocity_x'),
                  ('temperature', 'cell_mass'), ('density', 'radius'),
                  ('velocity_magnitude', 'cell_mass')]
     ph_fields = [('density', 'temperature', 'cell_mass'),
                  ('density', 'velocity_x', 'cell_mass'),
                  ('radius', 'temperature', 'velocity_magnitude')]
     for reg in regions:
         for x_field, y_field in pr_fields:
             profiles.append(ProfilePlot(reg, x_field, y_field))
             profiles.append(
                 ProfilePlot(reg,
                             x_field,
                             y_field,
                             fractional=True,
                             accumulation=True))
             p1d = create_profile(reg, x_field, y_field)
             profiles.append(ProfilePlot.from_profiles(p1d))
         for x_field, y_field, z_field in ph_fields:
             # set n_bins to [16, 16] since matplotlib's postscript
             # renderer is slow when it has to write a lot of polygons
             phases.append(
                 PhasePlot(reg,
                           x_field,
                           y_field,
                           z_field,
                           x_bins=16,
                           y_bins=16))
             phases.append(
                 PhasePlot(reg,
                           x_field,
                           y_field,
                           z_field,
                           fractional=True,
                           accumulation=True,
                           x_bins=16,
                           y_bins=16))
             p2d = create_profile(reg, [x_field, y_field],
                                  z_field,
                                  n_bins=[16, 16])
             phases.append(PhasePlot.from_profile(p2d))
     cls.profiles = profiles
     cls.phases = phases
     cls.ds = test_ds