{ "info": { "author": "Gen Del Raye", "author_email": "gdelraye@hawaii.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Scientific/Engineering" ], "description": "================\nplotsettings\n================\n\nThe difference between publishing figures using just *matplotlib* **(A)**, and using *matplotlib*\nwith *plotsettings* **(B)**:\n\n.. image:: https://dl.dropboxusercontent.com/u/35392962/annotated_example.jpg\n :width: 600\n :height: 279\n\n---------------\nHighlights\n---------------\nTearing your hair out trying to make your figures conform to the author guidelines\nfor a particular journal? Got rejected from PNAS and can't bring yourself to change\nall the fonts for submission to PLOS ONE? Let *plotsettings* make it easy for you!\n*plotsettings* is a convenient way of making sure your figures fit the requirements\nfor publication. One line is sufficient to choose a target journal, and just one\nmore line to automatically output figures that fit cleanly into 1, 2 or even 1.5\ncolumns! You can even set the aspect ratio of your figure and be warned if your \nfigure gets taller than the height of one page. In fact, *plotsettings* already knows \nthe appropriate font, text size, and figure dimensions for all of these journals:\n \n * Cell (use argument 'Cell')\n * Copeia (use argument 'Copeia')\n * Deep Sea Research II (use argument 'DSRII')\n * Ecology Letters (use argument 'EcolLett')\n * Global Change Biology (use argument 'GlobChangeBio')\n * Global Environmental Change (use argument 'GlobEnvChange')\n * Integrative and Comparative Biology (use argument 'IntCompBiol')\n * Journal of Experimental Biology (use argument 'JEB')\n * Limnology and Oceanography (use argument 'LimnolOcean')\n * Marine Ecology Progress Series (use argument 'MEPS')\n * Nature magazine (use argument 'Nature')\n * Oecologia (use argument 'Oecologia')\n * Proceedings of the National Academy of Sciences, USA (use argument 'PNAS')\n * Proceedings of the Royal Society B (use argument 'ProcRoySocB')\n * Public Library of Science One (use argument 'PLOSOne')\n * Public Library of Science Biology (use argument 'PLOSBio')\n * Science magazine (use argument 'Science')\n * Presentation (okay, this is not a journal but it's still useful for outputting \n figures to presentation slides; access with the argument 'Presentation')\n\nDon't see the journal you want on the list (say you want to publish in the `Proceedings \nof the 6th ACM Workshop on Next Generation Mobile Computing for Dynamic Personalised \nTravel Planning `_)? Compile your \nown list of journals by creating a python file containing a single dictionary with \nsettings for every journal *you* use! You can specify any parameters that are accepted \nby *matplotlib.rcParams* as well as the column width, gutter width, page height and the\nway that multi-panel figures are labeled.\n\nAlso, a **Bonus**!:\n\n\t* 1-line labeling of all the subplots in a figure (e.g. with '(a)', '(b)', '(c)' \n\t etc.) using the standalone function *panel_labels* or the method \n\t *Set.panel_labels*!\n\n----------------\nInstallation\n----------------\n*plotsettings* has only been tested in Python 2.7\n\nInstall through pip::\n\n\t$ pip install plotsettings\n\nRequires the following non-standard libraries:\n\n * *matplotlib*\n\nBecause preferred installation of matplotlib can vary depending on the operating system, \nmatplotlib will not automatically be installed as a dependency. Instead, installation will \nraise an exception if matplotlib cannot be found in the pythonpath. In this case, please \ninstall matplotlib via your preferred method, most of which are explained `by matplotlib \n`_\n\n----------------\nUsage\n----------------\nFirst set the journal you want to submit to::\n\n\tpublishable = plotsettings.Set('MEPS') # Lets publish in Marine Ecology Progress Series!\n\nThen set the dimensions of a particular figure with the line::\n\n publishable.set_figsize(n_columns = 1, n_rows = 1)\n\nThis will cause the next figure that is drawn to be 1 column wide (81 mm for MEPS) x 1 \nrow high (the concept of 'rows' is a little made up, but the default is that one row is\nequal to one column width multiplied by the golden ratio, so in this case 50.1 mm). Once \nthe first figure is drawn, we can set the next figure to be 2 columns wide and 1 row \ntall and this time set the row height to be equal to the column width like this::\n\n publishable.set_figsize(2, 1, aspect_ratio = 1)\n\nImportantly, *plotsettings* doesn't just calculate the width of a 2-column figure as two\ntimes the width of one column, but includes the width of the gutter (the space between\ncolumns on a page) as well. Therefore, the figure that follows the above line will end\nup being 169 mm wide (2 columns of 81 mm each plus a 7 mm gutter) and 81 mm tall (row\nheight = 1*column width).\n\nOnce the figure has been created, conveniently add labels to each subplot (if you have a\nmultipart figure)::\n\n\tpublishable.panel_labels(fig = fig, position = 'outside', case = 'lower', \n\t\t\t\t\t\t\t prefix = '', suffix = '.', fontweight = 'bold')\n\nto create the labels ('a.', 'b.', 'c.' ...) in bold letters outside the top-left corner\nof each subplot.\n\nCustom journal settings can be used by specifying a python file on the PYTHONPATH::\n\n\tpublishable = plotsettings.Set('my_journal_name', 'module_name')\n\nThe file 'module_name' should contain a single dictionary named *journals* with the \nfollowing structure::\n\n journals = {'journal1': {'rcParams': {'param1': value1,\n 'param2': value2 ...}, \n 'figsize': {'param1': value1,\n 'param2': value2 ...},\n 'panel_labels': {'param1': value1,\n 'param2': value2 ...},\n 'journal2': {'rcParams': {'param1': value1,\n 'param2': value2 ...}, \n 'figsize': {'param1': value1,\n 'param2': value2 ...},\n 'panel_labels': {'param1': value1,\n 'param2': value2 ...},\n 'journal3'...\n }\n\nwhere 'journalx' are the identifying names of academic journals (e.g. 'Nature'), with\nthe specifications for each journal being divided into 3 dictionaries:\n\n * *rcParams*: All parameters are optional. Any valid input to pyplot.rcParams (for\n example font name and sizes, default linewidths) is accepted. Definitions of valid \n keys to rcParams can be found `here `_.\n * *figsize*: Set figure dimension calculations. Requires the parameters column_width, \n gutter_width, and units. The parameter max_height is optional. See below for details.\n * *panel_labels*: Set default panel labels (i.e. the text that identifies each subplot in\n a figure as A, B, C, etc.). All parameters are optional. See below for details.\n \nThe possible non-rcParams parameters are:\n \n * *figsize*:\n \n * *column_width* (required) - the maximum width a figure is allowed to be while still \n fitting withing a single column.\n * *gutter_width* (required) - the width of the gutter (space between columns). This can \n usually be found by comparing the maximum width that a journal allows for a single-\n column figure with the maximum width of a 2-column figure. For example, PLoS One\n allows a 1-column figure to be 83 mm in width and a 2-column figure to be 173.5 mm,\n meaning that the gutter width (173.5 - 83*2) must be 7.5 mm wide.\n * *max_height* (optional) - the maximum height a figure is allowed to be while fitting \n on a single page (i.e. the page height).\n * *units* (required) - the units in which the above are reported. Can be one of 'mm', \n 'cm', 'inch', or 'pts'\n \n * panel_labels:\n \n * *fontweight* (optional) - the font weight of panel annotations (e.g. A, B, C etc.).\n Default is 'bold'\n * *case* (optional) - whether to capitalize ('upper') or not capitalize\n ('lower') the panel labels.\n * *prefix* (optional) - characters to prepend to panel label (e.g. if the desired\n label style is (A), (B), etc., set label_prefix to ')').\n * *suffix* (optional) - characters to append to panel label (e.g. if the desired\n label style is a., b., etc., set label_suffix = '.')\n * *fontsize* (optional) - font size in pts of the label. Defaults to rcParams['font.size']\n\n--------------\nChangelog\n--------------\n**1.0.4-2 (NOVEMBER/14/2014)**\n\n\t* Updated doctests\n\n**1.0.4-1 (NOVEMBER/14/2014)**\n\n\t* Removed deprecated keywords from default journal parameters\n\n**1.0.4 (OCTOBER/20/2014)**\n\n\t* Added ability for *panel_labels* method to automatically detect axes that contain only\n\t colorbars and not label them (use detect_colorbars = True). This method relies on the\n\t assumption that colorbar axes are not navigable (e.g. cannot be panned or zoomed in the\n\t interactive figure). This property was chosen because it seems to work both for colorbars\n\t created by *pyplot.colorbar()* as well as those created explicitly in a new axis such as\n\t using the AxesGrid toolkit.\n\n**1.0.3 (OCTOBER/15/2014)**\n\n\t* package *matplotlib* is no longer explicitly required in setup.py. Installation will raise\n\t an error if matplotlib is not present - please install in your preferred way.\n\n**1.0.2 (OCTOBER/15/2014)**\n\n\t* Changed format of dictionary specifying journal settings. Settings for each journal are\n\t now divided between the dictionaries 'rcParams', 'figsize' and 'panel_labels' instead of \n\t being amalgamated into a single dictionary.\n\t* Added journals Science, Integrative and Comparative Zoology, Copeia, Cell, Global Change \n\t Biology, Global Environmental Change, Limnology and Oceanography, Nature, PLOS Biology\n\t and Oecologia to the list of natively supported publications.\n\t* Added method *panel_labels* to class *Set* to allow panel labels (e.g. A, B, C etc.)\n\t to automatically follow default settings for the journal (e.g. boldface, uppercase, etc.)\n\n**1.0.1 (OCTOBER/14/2014)**\n\n\t* Fixed bug that made *plotsettings.Set* unable to find the default *journals* module\n\t* Added function *panel_labels* for convenient, 1-line addition of formatted panel \n\t labels (e.g. A, B, C) to every subplot in a figure.\n\t* Added 'Presentation' as a journal type for PowerPoint slides\n\n**1.0.0 (OCTOBER/13/2014)**\n\n\t* First release\n\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": "matplotlib,rcParams,journal,figure size,plot settings,panel labels", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "plotsettings", "package_url": "https://pypi.org/project/plotsettings/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/plotsettings/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/plotsettings/1.0.4-2/", "requires_dist": null, "requires_python": null, "summary": "Easily format figures to match the publication requirements of an academic journal", "version": "1.0.4-2" }, "last_serial": 1306918, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "7373e549cacce24dea37b039fd51bf49", "sha256": "a0ab0743e317fd588e3b413c741e09b2336bb15c816cec1bf29d2485bbb41543" }, "downloads": -1, "filename": "plotsettings-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "7373e549cacce24dea37b039fd51bf49", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6826, "upload_time": "2014-10-14T09:16:18", "url": "https://files.pythonhosted.org/packages/91/96/3736cb51045962a878f8c91d33d727d55380f2d5c91adf94e4dc8f680fd0/plotsettings-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53435b53aa91b4170ba77f4fc3fb0c2d", "sha256": "d2fde93b5d6702943b63be826220a1411357d11724ff300cf5051872ec98dd03" }, "downloads": -1, "filename": "plotsettings-1.0.0.tar.gz", "has_sig": false, "md5_digest": "53435b53aa91b4170ba77f4fc3fb0c2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5831, "upload_time": "2014-10-14T09:16:14", "url": "https://files.pythonhosted.org/packages/fb/d8/4f3bee605b2eefc1ed1323f6f1160ea11f712842f66c05b33b30463079f7/plotsettings-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "63e1f1df6beb4eac7a8af3bcb03a3b55", "sha256": "eaf101c11d21e05f5534d516e3df7055f3850f7b5d22e716bb217ea9ef9e68c2" }, "downloads": -1, "filename": "plotsettings-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "63e1f1df6beb4eac7a8af3bcb03a3b55", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8416, "upload_time": "2014-10-14T16:42:57", "url": "https://files.pythonhosted.org/packages/4e/94/4d3e8561d7cc294f3be8d586cf72c26e7c6ac4835239554ca6b4957032cd/plotsettings-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c38ae69cf91f9acdae2859d1284127a0", "sha256": "c3504045b05da970f6fba140d749b71ca4a24275aacd812aed9136c35079235f" }, "downloads": -1, "filename": "plotsettings-1.0.1.tar.gz", "has_sig": false, "md5_digest": "c38ae69cf91f9acdae2859d1284127a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7880, "upload_time": "2014-10-14T16:42:54", "url": "https://files.pythonhosted.org/packages/ab/a5/38093699567d99af22c34ac94a5ef578d19f9098a248c1d1eaf6aeaf9cca/plotsettings-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "228df72a80d03dabd135710ca28676e4", "sha256": "6b4ae9dd135476c346af443fe20d7fa82b3aa4f477a38254a7c9c2bfbc671ebc" }, "downloads": -1, "filename": "plotsettings-1.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "228df72a80d03dabd135710ca28676e4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12385, "upload_time": "2014-10-15T18:34:31", "url": "https://files.pythonhosted.org/packages/1c/c9/fc53212f01861648c5263f6e0656fb6a568ee1a9432899041c3b85ce94f4/plotsettings-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73bc8f67d18d878eefe1118eab887afc", "sha256": "67ae12582c48fff2f030944fcd34e51e797b80e83b638032962fe8e8248742e3" }, "downloads": -1, "filename": "plotsettings-1.0.2.tar.gz", "has_sig": false, "md5_digest": "73bc8f67d18d878eefe1118eab887afc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11677, "upload_time": "2014-10-15T18:34:28", "url": "https://files.pythonhosted.org/packages/3d/a1/fa5a4204cade4dc141ae4647210951aa8c510dc21c026f7314b451156388/plotsettings-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "15914a2d078a9ab0302c64b8015034be", "sha256": "8d31fe23a85d4cd9ffc5a42587f70492e6d22b18f5936d21817eb376fe8d5bfb" }, "downloads": -1, "filename": "plotsettings-1.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "15914a2d078a9ab0302c64b8015034be", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12350, "upload_time": "2014-10-15T18:50:01", "url": "https://files.pythonhosted.org/packages/30/1d/6132a9a431967c7938312043acee092e9a5e3af8bbcc00421a0972f385e6/plotsettings-1.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d3c77feb0d88eb4962073247c6c8964e", "sha256": "a1db8e3f16f1939f732a4e8d79a187657cb628db51a8b86c099409541fdae50b" }, "downloads": -1, "filename": "plotsettings-1.0.3.tar.gz", "has_sig": false, "md5_digest": "d3c77feb0d88eb4962073247c6c8964e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11879, "upload_time": "2014-10-15T18:49:58", "url": "https://files.pythonhosted.org/packages/84/30/d28d46b3148ccc9bca2d9e66f4dd67432e5b494c5548de6ada89992659d2/plotsettings-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "230827df01f40e0b5711cd418dc3e5fe", "sha256": "2b054ba5cf73a776ca71a9c5aa3c6a6b26ff87f40c912cd4fa29f3fe43d7b4ca" }, "downloads": -1, "filename": "plotsettings-1.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "230827df01f40e0b5711cd418dc3e5fe", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13723, "upload_time": "2014-10-20T19:16:56", "url": "https://files.pythonhosted.org/packages/29/68/1ef3645e3bf3c51831d9117bd610d43f2d22540cf11c9b0723f83a064389/plotsettings-1.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "597a8bb8dea36e03049d7f8d5bb99e1e", "sha256": "a5dd90163763f4a19f4abf880afe03951d5f5426fa984d9fd5465e139a9fb5ff" }, "downloads": -1, "filename": "plotsettings-1.0.4.tar.gz", "has_sig": false, "md5_digest": "597a8bb8dea36e03049d7f8d5bb99e1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13731, "upload_time": "2014-10-20T19:16:51", "url": "https://files.pythonhosted.org/packages/49/5e/dabc085ab3133af61a8dbc9f8e072556b0974360a1eacf1d25d3c838f66e/plotsettings-1.0.4.tar.gz" } ], "1.0.4-1": [ { "comment_text": "", "digests": { "md5": "7ed35e5df381a926cfb8ce9c8fa02c4a", "sha256": "ae090f77d3054ffbaddf68cd9854fed80e2429924034f6c04f9c9b51d59eb00f" }, "downloads": -1, "filename": "plotsettings-1.0.4_1-py2-none-any.whl", "has_sig": false, "md5_digest": "7ed35e5df381a926cfb8ce9c8fa02c4a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13713, "upload_time": "2014-11-14T11:40:18", "url": "https://files.pythonhosted.org/packages/ba/2e/6a1d1e8fbe2c5c136a38190ccbbeedd12dd58ecad77afc2e7b2553c6e5e4/plotsettings-1.0.4_1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c31563bbd9254658fb57e1f000536f95", "sha256": "ca5da01bc67782c31e1e7652aa32ecfa17f5547addf04113931fa21661ebef08" }, "downloads": -1, "filename": "plotsettings-1.0.4-1.tar.gz", "has_sig": false, "md5_digest": "c31563bbd9254658fb57e1f000536f95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13684, "upload_time": "2014-11-14T11:40:14", "url": "https://files.pythonhosted.org/packages/96/fe/e28b1c12d49fa4187a2b37a4e5103a7d35b5e251115de3bfa6f401ee7d36/plotsettings-1.0.4-1.tar.gz" } ], "1.0.4-2": [ { "comment_text": "", "digests": { "md5": "0a0698f6d46d9ad0b9a68c187aedb948", "sha256": "69082b4ee5ae11d190827fed316c0d3b307c33bfdd4b566f38f2468c94b13441" }, "downloads": -1, "filename": "plotsettings-1.0.4_2-py2-none-any.whl", "has_sig": false, "md5_digest": "0a0698f6d46d9ad0b9a68c187aedb948", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27964, "upload_time": "2014-11-14T11:53:37", "url": "https://files.pythonhosted.org/packages/0e/d0/081d8f16c7efd58c85f8c9d0e05eaefcf295acb739b7e28050be335e32e9/plotsettings-1.0.4_2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b87d75c168f17f8ba0ad8221e3d09712", "sha256": "440a09b9f6df3c68f8694f2bade6069a1d169e5b76db68cbf01ad09e72eb14e6" }, "downloads": -1, "filename": "plotsettings-1.0.4-2.tar.gz", "has_sig": false, "md5_digest": "b87d75c168f17f8ba0ad8221e3d09712", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13681, "upload_time": "2014-11-14T11:53:34", "url": "https://files.pythonhosted.org/packages/a2/6e/216efc782d1719177207f1cae9740003eab2d9564ab80760a07c32632faf/plotsettings-1.0.4-2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0a0698f6d46d9ad0b9a68c187aedb948", "sha256": "69082b4ee5ae11d190827fed316c0d3b307c33bfdd4b566f38f2468c94b13441" }, "downloads": -1, "filename": "plotsettings-1.0.4_2-py2-none-any.whl", "has_sig": false, "md5_digest": "0a0698f6d46d9ad0b9a68c187aedb948", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27964, "upload_time": "2014-11-14T11:53:37", "url": "https://files.pythonhosted.org/packages/0e/d0/081d8f16c7efd58c85f8c9d0e05eaefcf295acb739b7e28050be335e32e9/plotsettings-1.0.4_2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b87d75c168f17f8ba0ad8221e3d09712", "sha256": "440a09b9f6df3c68f8694f2bade6069a1d169e5b76db68cbf01ad09e72eb14e6" }, "downloads": -1, "filename": "plotsettings-1.0.4-2.tar.gz", "has_sig": false, "md5_digest": "b87d75c168f17f8ba0ad8221e3d09712", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13681, "upload_time": "2014-11-14T11:53:34", "url": "https://files.pythonhosted.org/packages/a2/6e/216efc782d1719177207f1cae9740003eab2d9564ab80760a07c32632faf/plotsettings-1.0.4-2.tar.gz" } ] }