Skip to main content

imagesc is an python package to create heatmaps using multiple methods.

Project description

imagesc

Python PyPI Version License Downloads

  • 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.

Functions in imagesc

# data is your numpy array
fig = imagesc.seaborn(data)
fig = imagesc.cluster(data)
fig = imagesc.fast(data)
fig = imagesc.clean(data)
fig = imagesc.plot(data)
status = imagesc.savefig(fig)

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 numpy pandas matplotlib seaborn
# or
pip install -r requirements.txt

Quick Start

pip install imagesc
  • Alternatively, install imagesc from the GitHub source:
git clone https://github.com/erdogant/imagesc.git
cd imagesc
python setup.py install

Import imagesc package

import imagesc as imagesc

seaborn

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

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

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

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

Maintainers

Contribute

  • Contributions are welcome.

Licence

See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for imagesc, version 0.1.5
Filename, size File type Python version Upload date Hashes
Filename, size imagesc-0.1.5-py3-none-any.whl (10.9 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size imagesc-0.1.5.tar.gz (10.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page