customplotting: make publishable quality science figures quickly
Project description
Custom-Plotting
Custom-plotting is a python package written with the aim of producing scientific publication quality figures as quickly as possible with as little code as possible (checkout examples).
So instead of typing 8 lines of code in matplotlib everytime:
import matplotlib.pyplot as plt
from matplotlib_scalebar.scalebar import ScaleBar
"""Plot image"""
plt.figure()
plt.imshow(img_data)
cb = plt.colorbar()
cb.set_label("Height (nm)", fontsize=20, fontweight='bold')
plt.gca().axes.get_yaxis().set_visible(False)
plt.gca().axes.get_xaxis().set_visible(False)
"""Add scalebar"""
scalebar = ScaleBar(dx=0.5, units='nm') # 1 pixel = 0.5 nm
plt.gca().add_artist(scalebar)
You only need 1 line of code to get the same plot:
from customplotting.mscope import plot_confocal
"""Plot image with scalebar"""
plot_confocal(img_data, stepsize=0.5, units='nm', cbar_label="Height (nm)")
It saves you from a lot of unnecessary typing (if you often plot data)
The functions wrap around matplotlib
library for plotting with the customizable options. For instance, you can directly add a scalebar to your image without additional code. The figures can customized (colorbar, axis, linewidth, labels, etc) using the same key word arguments as in matplotlib
. See function docstrings for more information about customization.
Install
pip install customplotting
Example Usage
"""Make a publishable image with scalebar"""
from customplotting.mscope import plot_confocal
plot_confocal(img_data, stepsize=0.5, units='nm', cbar_label="Height (nm)")
"""Make a publishable X-Y plot"""
from customplotting.general import plot_xy
plot_xy([1,2,3], [4,5,6], xlabel="Random X", ylabel="Random Y")
Check out the jupyter notebook for more examples
Why use?
Matplotlib
is an AMAZING package but if you are like me and are tired of typing 5-7 lines of code everytime you want a good publishable quality figure, then customplotting
is the answer.
Customplotting
basically wraps the matplotlib functions to allow you to quickly plot commonly used plots like x-y, images with scalebars, etc with only one line of code.
What's New?
- Plot X-Y with custom settings (from v0.1.4)
- Scalebar can be added to the plot using a new dependency
matplotlib_scalebar
(from v0.1.3) - For widefield (pixera) plots, scale can automatically be selected by choosing the objective used
- Colorbar can be customized with labels (and also removed if needed)
- X-axis and Y-axis ticks can be added/removed now
Contribute
Contributions are always welcome! See CONTRIBUTING.md
Issues
Open an issue if you come across any!
License
Dependencies
matplotlib
matplotlib_scalar
numpy
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file customplotting-0.1.4.2.tar.gz
.
File metadata
- Download URL: customplotting-0.1.4.2.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cd8b4ef89f98602bf7bef46e7a332f8221f6eb582d520825cdff289c4bcdd52 |
|
MD5 | bf782831945dfa8163307eaa12effa19 |
|
BLAKE2b-256 | 0b6ac07eee29c38083cb942d422b83660674b8b744a0817e3cd7188303474d21 |
File details
Details for the file customplotting-0.1.4.2-py3-none-any.whl
.
File metadata
- Download URL: customplotting-0.1.4.2-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e352d64bfdc45b7366cca0abc82a00ee9f872fb1fd0db56d1092e771d26708a1 |
|
MD5 | 7545523377690173e879ce8a568c6ba9 |
|
BLAKE2b-256 | 2f228ab961f500ea238333e35e6957c1a553ef8cfedda3c31271a8d8a298f65a |