imagesc
- imagesc is an Python package to create heatmaps. Various methods to create a heatmap are implemented, each with specific properties that can help to easily create your heatmap. The fast and clean method is optimized for speed, the cluster method provides clustering, the seaborn method contains many configuration settings, and finally, the plot as good as possible the imagesc from matlab.
Star this repo if you like it! ⭐️
Functions in imagesc
# X is your numpy array
fig = imagesc.seaborn(X)
fig = imagesc.cluster(X)
fig = imagesc.fast(X)
fig = imagesc.clean(X)
fig = imagesc.plot(X)
status = imagesc.savefig(fig)
path = imagesc.d3(df)
Contents
Installation
- Install imagesc from PyPI (recommended). imagesc is compatible with Python 3.6+ and runs on Linux, MacOS X and Windows.
- It is distributed under the MIT license.
Requirements
# Note that: seaborn is only required when using **seaborn** or **cluster** functions.
pip install -r requirements.txt
Installation from Pypi
pip install imagesc
Import imagesc package
import imagesc as imagesc
d3
- Implemention is based on d3
- Interactive
- Stand-alone
- https://d3-graph-gallery.com
df = pd.DataFrame(np.random.randint(0, 100, size=(50, 50)))
imagesc.d3(df, vmax=1)
seaborn
- Underlying implemented is based on seaborn
- Large number of configurations
- Slow when using large datasets
- Grid is aligned to the cells
- See here for all parameters: https://seaborn.pydata.org/generated/seaborn.heatmap.html
df = pd.DataFrame(np.random.randint(0,100,size=(10,20)))
A = imagesc.seaborn(df.values, df.index.values, df.columns.values)
B = imagesc.seaborn(df.values, df.index.values, df.columns.values, annot=True, annot_kws={"size": 12})
C = imagesc.seaborn(df.values, df.index.values, df.columns.values, annot=True, annot_kws={"size": 12}, cmap='rainbow')
D = imagesc.seaborn(df.values, df.index.values, df.columns.values, annot=True, annot_kws={"size": 12}, cmap='rainbow', linecolor='#ffffff')
A
B
C
D
cluster
- Underlying implemented is based on clustermap
- When you desire to cluster your heatmap
- Default distance setting: metric="euclidean", linkage="ward" (can be changed)
- Slow for large data sets
- Grid is aligned to the cells
- Possibilities to tweak
- Possible arguments: https://seaborn.pydata.org/generated/seaborn.clustermap.html
df = pd.DataFrame(np.random.randint(0,100,size=(10,20)))
fig_C1 = imagesc.cluster(df.values, df.index.values, df.columns.values)
fig_C2 = imagesc.cluster(df.values, df.index.values, df.columns.values, cmap='rainbow')
fig_C3 = imagesc.cluster(df.values, df.index.values, df.columns.values, cmap='rainbow', linecolor='#ffffff')
fig_C4 = imagesc.cluster(df.values, df.index.values, df.columns.values, cmap='rainbow', linecolor='#ffffff', linewidth=0)
imagesc.savefig(fig_C1, './docs/figs/cluster4.png')
C1
C2
C3
C4
fast
- Underlying implemented is based on pcolorfast
- Fast
- Not so much tweakable
- Grid is not aligned to the cells
- Possible arguments: https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.axes.Axes.pcolorfast.html
df = pd.DataFrame(np.random.randint(0,100,size=(10,20)))
fig_F1 = imagesc.fast(df.values, df.index.values, df.columns.values)
fig_F2 = imagesc.fast(df.values, df.index.values, df.columns.values, grid=False)
fig_F3 = imagesc.fast(df.values, df.index.values, df.columns.values, grid=False, cbar=False)
fig_F4 = imagesc.fast(df.values, df.index.values, df.columns.values, grid=True, cbar=False)
fig_F5 = imagesc.fast(df.values, df.index.values, df.columns.values, cmap='rainbow')
fig_F6 = imagesc.fast(df.values, df.index.values, df.columns.values, cmap='rainbow', linewidth=0.5, grid=True)
imagesc.savefig(fig_C1, './docs/figs/fast1.png')
F1
F2
F3
F4
F5
F6
clean
- Underlying implemented is based on pcolorfast
- Fast
- No Grid
- Limited configurations
- Ideal for photos
- Possible arguments: https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.axes.Axes.pcolorfast.html
df = pd.DataFrame(np.random.randint(0,100,size=(10,20)))
fig_FC1 = imagesc.clean(df.values)
fig_FC2 = imagesc.clean(df.values, cmap='rainbow')
imagesc.savefig(fig_C1, './docs/figs/clean1.png')
F1
F2
plot
- Underlying implemented is based on imshow
- implementation will behave more-or-less as the one of matlab
- Medium speed
- Various configurations are possible but less then seaborn
- Grid is aligned to the cells
- Possible arguments: https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.imshow.html
df = pd.DataFrame(np.random.randint(0,100,size=(10,20)))
fig_M1 = imagesc.plot(df.values)
fig_M2 = imagesc.plot(df.values, cbar=False)
fig_M3 = imagesc.plot(df.values, cbar=False, axis=False)
fig_M4 = imagesc.plot(df.values, cbar=False, axis=True, linewidth=0.2)
fig_M5 = imagesc.plot(df.values, df.index.values, df.columns.values)
fig_M6 = imagesc.plot(df.values, df.index.values, df.columns.values, cbar=False, linewidth=0.2)
fig_M7 = imagesc.plot(df.values, df.index.values, df.columns.values, grid=True, cbar=False, linewidth=0.2)
fig_M8 = imagesc.plot(df.values, df.index.values, df.columns.values, grid=False, cbar=False, linewidth=0.2)
fig_M9 = imagesc.plot(df.values, df.index.values, df.columns.values, grid=True, cbar=False, linewidth=0.8, linecolor='#ffffff')
fig_M10 = imagesc.plot(df.values, df.index.values, df.columns.values, grid=True, cbar=False, linewidth=0.8, linecolor='#ffffff', cmap='rainbow')
imagesc.savefig(fig, './docs/figs/plot10.png')imagesc.savefig(fig_C1, './docs/figs/fast1.png')
M1
M2
M3
M4
M5
M6
M7
M8
M9
M10
Speed:
import matplotlib.image as mpimg
img=mpimg.imread('./docs/figs/lenna.png')
fig = imagesc.clean(img)
# runtime 1.49
fig = imagesc.fast(img, cbar=False, axis=False)
# runtime: 2.931 seconds
fig = imagesc.plot(img, linewidth=0, cbar=False)
# runtime: 11.042
**fast**
**clean**
**plot**
Citation
Please cite imagesc in your publications if this is useful for your research. Here is an example BibTeX entry:
@misc{erdogant2019imagesc,
title={imagesc},
author={Erdogan Taskesen},
year={2019},
howpublished={\url{https://github.com/erdogant/imagesc}},
}
References
- seaborn https://seaborn.pydata.org/generated/seaborn.heatmap.html
- clustermap https://seaborn.pydata.org/generated/seaborn.clustermap.html
- fast and clean https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.axes.Axes.pcolor.html
- plot https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.imshow.html
- Other https://matplotlib.org/3.1.1/gallery/images_contours_and_fields/image_annotated_heatmap.html
- Colormap https://matplotlib.org/examples/color/colormaps_reference.html
Maintainer
Metadata
Release files for imagesc 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| imagesc-0.3.0.tar.gz | 16.5 kB | Without provenance | Details for imagesc-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| imagesc-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for imagesc-0.3.0-py3-none-any.whl |
Total release size: 31.9 kB
Release files / imagesc-0.3.0.tar.gz
| Download URL | imagesc-0.3.0.tar.gz |
|---|---|
| Size | 16.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1dfd0dad5b2c4094e8e553fe509b886a17cdd4606069f12988a6825eeba4711c
|
|
BLAKE2b-256 checksum How to use checksums |
8c175f730265ac5d504f279b1825dbc0f9963bdf74017504264e1ff984125ec3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.4
|
Release files / imagesc-0.3.0-py3-none-any.whl
| Download URL | imagesc-0.3.0-py3-none-any.whl |
|---|---|
| Size | 15.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd9585a5ea6a1ae7ca03233085cee8a87dda7e9fb90f764d92cbabf4e135e118
|
|
BLAKE2b-256 checksum How to use checksums |
3428262e9952004d76dec8c432d2d7ce52013fb296e084e0c0d33e0aae5c1109
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.4
|
Security for imagesc 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.