Skip to main content

Introduction

This Python package implements the function chernoff_face that generates Chernoff diagrams.

The design, implementation strategy, and unit tests closely resemble the Wolfram Repository Function (WFR) ChernoffFace, [AAf1], and the original Mathematica package “ChernoffFaces.m”, [AAp1].


Installation

To install from GitHub use the shell command:

python -m pip install git+https://github.com/antononcube/Python-packages.git#egg=ChernoffFace\&subdirectory=ChernoffFace

To install from PyPI:

python -m pip install ChernoffFace

Usage examples

Setup

from ChernoffFace import *
import numpy
import matplotlib.cm

Random data

# Generate data
numpy.random.seed(32)
data = numpy.random.rand(16, 12)

# Make Chernoff faces
fig = chernoff_face(data=data, 
                    titles=[str(x) for x in list(range(len(data)))], 
                    color_mapper=matplotlib.cm.Pastel1)

# Display
fig.tight_layout()
matplotlib.pyplot.show()

Employee attitude data

Get Employee attitude data

dfData=load_employee_attitude_data_frame()
dfData.head()

##    Rating  Complaints  Privileges  Learning  Raises  Critical  Advancement
## 0      43          51          30        39      61        92           45
## 1      63          64          51        54      63        73           47
## 2      71          70          68        69      76        86           48
## 3      61          63          45        47      54        84           35
## 4      81          78          56        66      71        83           47

Rescale the variables:

dfData2 = variables_rescale(dfData)
dfData2.head()

##      Rating  Complaints  Privileges  Learning    Raises  Critical  Advancement
## 0  0.066667    0.264151    0.000000  0.121951  0.400000  1.000000     0.425532
## 1  0.511111    0.509434    0.396226  0.487805  0.444444  0.558140     0.468085
## 2  0.688889    0.622642    0.716981  0.853659  0.733333  0.860465     0.489362
## 3  0.466667    0.490566    0.283019  0.317073  0.244444  0.813953     0.212766
## 4  0.911111    0.773585    0.490566  0.780488  0.622222  0.790698     0.468085

Make the corresponding Chernoff faces using USA state names as titles:

fig = chernoff_face(data=dfData2,
                    n_columns=5,
                    long_face=False,
                    color_mapper=matplotlib.cm.tab20b,
                    figsize=(8, 8), dpi=200)

Display:

fig.tight_layout()
matplotlib.pyplot.show()

USA arrests data

Get USA arrests data:

dfData=load_usa_arrests_data_frame()
dfData.head()

##     StateName  Murder  Assault  UrbanPopulation  Rape
## 0     Alabama    13.2      236               58  21.2
## 1      Alaska    10.0      263               48  44.5
## 2     Arizona     8.1      294               80  31.0
## 3    Arkansas     8.8      190               50  19.5
## 4  California     9.0      276               91  40.6

Rescale the variables:

dfData2 = variables_rescale(dfData)
dfData2.head()

##     StateName    Murder   Assault  UrbanPopulation      Rape
## 0     Alabama  0.746988  0.654110         0.440678  0.359173
## 1      Alaska  0.554217  0.746575         0.271186  0.961240
## 2     Arizona  0.439759  0.852740         0.813559  0.612403
## 3    Arkansas  0.481928  0.496575         0.305085  0.315245
## 4  California  0.493976  0.791096         1.000000  0.860465

Make the corresponding Chernoff faces using USA state names as titles:

fig = chernoff_face(data=dfData2,
                    n_columns=5,
                    long_face=False,
                    color_mapper=matplotlib.cm.tab20c_r,
                    figsize=(12, 12), dpi=200)

Display:

fig.tight_layout()
matplotlib.pyplot.show()

References

Articles

[AA1] Anton Antonov, “Making Chernoff faces for data visualization”, (2016), MathematicaForPrediction at WordPress.

Functions and packages

[AAf1] Anton Antonov, ChernoffFace, (2019), Wolfram Function Repository.

[AAp1] Anton Antonov, Chernoff faces implementation in Mathematica, (2016), MathematicaForPrediction at GitHub.

Download files

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

Source Distribution

ChernoffFace-0.1.3.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ChernoffFace-0.1.3-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file ChernoffFace-0.1.3.tar.gz.

File metadata

  • Download URL: ChernoffFace-0.1.3.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for ChernoffFace-0.1.3.tar.gz
Algorithm Hash digest
SHA256 89a4052cf07c70956a39a11a9af78cba4be50a6091af3d7aadeaa5ff8774383c
MD5 a38f3390a11bd35478daa7a210c1fb09
BLAKE2b-256 ff8950faf256a514b4746dfa37ef04cc700fc9078b248cf1a3b39d7ad8dc8464

See more details on using hashes here.

File details

Details for the file ChernoffFace-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: ChernoffFace-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for ChernoffFace-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6f0040e4da57a2ee94a99ea4848f2e588f66c1e0ff455c6afd354a159db8132c
MD5 99cecccc9df43190b2762e0e7a740d7d
BLAKE2b-256 086a5d0c7f27dfdc672ece4a67f85b4d8ff412a3fad4c80550c6a5dc57f76963

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.4

2 files

This release

0.1.3 This release

2 files

0.1.2

2 files

0.1.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page