Skip to main content

Makes of Chernoff face diagrams.

Project description

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

Get the numerical data of the data frame into an array:

data = dfData.to_numpy()

Rescale the variables:

data2 = variables_rescale(data)

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

fig = chernoff_face(data=data2,
                    n_columns=5,
                    long_faces=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

Get the numerical data of the data frame into an array:

data = dfData.to_numpy()
data = data[:, 1:5]

Rescale the variables:

data2 = variables_rescale(data)

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

fig = chernoff_face(data=data2,
                    n_columns=5,
                    long_faces=False,
                    color_mapper=matplotlib.cm.jet,
                    titles=dfData.StateName.tolist(),
                    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.

Project details


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.1.tar.gz (13.7 kB view hashes)

Uploaded Source

Built Distribution

ChernoffFace-0.1.1-py3-none-any.whl (15.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page