{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Your first plot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are many options and outputs available in `hmf`, and you can find more details of those in other tutorials or even the API documentation. In this tutorial however, we'll just show how to create a HMF with the most commonly required options. For those unfamiliar with Python, we'll also give a concrete example of how to make a plot with this data.\n", "\n", "First, we need to import the relevant libraries:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2020-05-20T02:59:51.220133Z", "start_time": "2020-05-20T02:59:50.543793Z" } }, "outputs": [], "source": [ "import matplotlib.pyplot as plt # The necessary plotting library\n", "import numpy as np # Numerical array library\n", "\n", "from hmf import MassFunction # The main hmf class\n", "\n", "# This just serves to render plots inline in the notebook. Do not use in a script.\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It may be worth mentioning before even constructing a `MassFunction` object, that we can see all possible options and parameters to the class, with their defaults, in the following way:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2020-05-20T03:00:11.142160Z", "start_time": "2020-05-20T03:00:11.135005Z" }, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "{'cosmo_model': FlatLambdaCDM(name=\"Planck15\", H0=67.7 km / (Mpc s), Om0=0.307, Tcmb0=2.725 K, Neff=3.05, m_nu=[0. 0. 0.06] eV, Ob0=0.0486),\n", " 'cosmo_params': {},\n", " 'n': 0.9667,\n", " 'sigma_8': 0.8159,\n", " 'growth_params': {},\n", " 'lnk_min': -18.420680743952367,\n", " 'lnk_max': 9.903487552536127,\n", " 'dlnk': 0.05,\n", " 'z': 0.0,\n", " 'transfer_model': hmf.density_field.transfer_models.CAMB,\n", " 'transfer_params': {},\n", " 'takahashi': True,\n", " 'growth_model': hmf.cosmology.growth_factor.GrowthFactor,\n", " 'hmf_model': hmf.mass_function.fitting_functions.Tinker08,\n", " 'Mmin': 10,\n", " 'Mmax': 15,\n", " 'dlog10m': 0.01,\n", " 'mdef_model': None,\n", " 'mdef_params': {},\n", " 'delta_c': 1.686,\n", " 'hmf_params': {},\n", " 'filter_model': hmf.density_field.filters.TopHat,\n", " 'filter_params': {}}" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "MassFunction.get_all_parameter_defaults(recursive=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Furthermore, if it is unclear what some of these parameters refer to, one can use the following helpful method to find out:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2020-05-20T03:00:27.448302Z", "start_time": "2020-05-20T03:00:27.444192Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cosmo_model : instance of `astropy.cosmology.FLRW` subclass\n", " The basis for the cosmology -- see astropy documentation. Can be a custom\n", " subclass. Defaults to Planck15.\n", "\n", "sigma_8 : float\n", " RMS linear density fluctuations in spheres of radius 8 Mpc/h\n", "\n" ] } ], "source": [ "# The parameter names passed filter the output. Call with no parameters to get info on all of them.\n", "MassFunction.parameter_info([\"cosmo_model\", \"sigma_8\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since everything has a default, we can easily just create our object with no arguments:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2020-05-20T03:00:47.808346Z", "start_time": "2020-05-20T03:00:47.799981Z" } }, "outputs": [], "source": [ "mf = MassFunction()" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2016-12-12T10:33:27.854397", "start_time": "2016-12-12T10:33:27.838120" } }, "source": [ "The `mf` object now contains all the information it needs to calculate different quantities on demand. If you are using IPython or a notebook, then you can use tab-completion to find out what quantities are available (or you can consult the [API documentation](../api.html)). Otherwise, you can print a list of available quantities using the following:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2016-12-12T10:47:17.900768", "start_time": "2016-12-12T10:47:17.886592" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['M', '_dlnsdlnm', '_gtm', '_normalisation', '_power0', '_sigma_0', '_transfer', '_unn_sig8', '_unn_sigma0', '_unnormalised_lnT', '_unnormalised_power', 'cosmo', 'delta_halo', 'delta_k', 'dndlnm', 'dndlog10m', 'dndm', 'filter', 'fsigma', 'growth', 'growth_factor', 'hmf', 'how_big', 'k', 'lnsigma', 'm', 'mass_nonlinear', 'mean_density', 'mean_density0', 'n_eff', 'ngtm', 'nonlinear_delta_k', 'nonlinear_power', 'nu', 'power', 'radii', 'rho_gtm', 'rho_ltm', 'sigma', 'transfer']\n" ] } ], "source": [ "print(mf.quantities_available())" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2016-12-12T10:21:38.970643", "start_time": "2016-12-12T10:21:38.967761" } }, "source": [ "The typical user might want to plot say mass vs. dn/dm, and this is most simply achieved by using matplotlib:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2020-05-20T03:04:07.519876Z", "start_time": "2020-05-20T03:04:06.941560Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(mf.m, mf.dndm)\n", "plt.xscale(\"log\")\n", "plt.yscale(\"log\")\n", "\n", "plt.xlabel(r\"Mass, $[h^{-1}M_\\odot]$\")\n", "plt.ylabel(r\"$dn/dm$, $[h^{4}{\\rm Mpc}^{-3}M_\\odot^{-1}]$\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each quantity is saved as a `numpy` array, and so they can be directly written to file or otherwise manipulated.\n", "\n", "The most common things one might wish to change are the cosmology, redshift and fitting function. We show how to choose different values for these below. Note that each is modified by passing it as a parameter to the constructor, where the the parameter name is the same as that printed by the `get_all_parameter_defaults1` method used above. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2020-05-20T03:04:30.021361Z", "start_time": "2020-05-20T03:04:30.013762Z" } }, "outputs": [], "source": [ "mf = MassFunction(\n", " z=1.0, # Redshift of 1.0\n", " cosmo_params={\"Om0\": 0.3}, # Matter density of 0.3\n", " hmf_model=\"PS\",\n", ") # Press-Schechter fitting function" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again we can plot the resulting mass function -- this time let's plot $f(\\sigma)$ vs. $\\sigma$:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2020-05-20T03:04:51.756367Z", "start_time": "2020-05-20T03:04:51.604941Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(mf.sigma, mf.fsigma)\n", "\n", "plt.xlabel(r\"$\\sigma(m)$\")\n", "plt.ylabel(r\"Press-Schechter $f(\\sigma)$\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A word of warning concerning cosmological models -- the structure parameters $\\sigma_8$ and the spectral index $n_s$ are not given to the `cosmo_params` dictionary, but rather passed directly to the `MassFunction` constructor. For further information see the [cosmological parameter tutorial](deal_with_cosmology.html).\n", "\n", "Of final note is the updating system (see the [Broad Overview Tutorial](broad_overview.html) for more information). Commonly, we would like to cycle through a range of values of a given parameter, and calculate the mass function for each them. The best (i.e. fastest) way to do this is to use `update`, like so:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2020-05-20T03:07:40.411067Z", "start_time": "2020-05-20T03:07:36.611709Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Note how to set all cosmological parameters (except sigma_8 and n) to a given common cosmology\n", "mf = MassFunction(cosmo_model=\"WMAP5\")\n", "\n", "for z in np.linspace(0, 1, 100):\n", " mf.update(z=z)\n", " plt.plot(mf.m, mf.dndm, color=\"darkblue\", alpha=1 - z)\n", "\n", "plt.xscale(\"log\")\n", "plt.yscale(\"log\")\n", "\n", "plt.xlabel(r\"Mass, $[h^{-1}M_\\odot]$\")\n", "plt.ylabel(r\"$dn/dm$, $[h^{4}{\\rm Mpc}^{-3}M_\\odot^{-1}]$\");" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [conda env:hmf]", "language": "python", "name": "conda-env-hmf-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": true, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 0, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "nav_menu": {}, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": "block", "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 1 }