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")
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])
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
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
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")
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