Skip to main content

Create mixed reality visualisations in Jupyter Notebooks

Project description

pyReality

Create mixed reality visualisations in Jupyter Notebooks

Rapid Mixed Reality Visualisations

pyReality makes it easy to create mixed reality data visualisations in Jupyter Notebooks. It leverages the capabilities of Jupyter Notebooks to let users modify the data visualisation using their desktop computer while they view it using a head-mounted display (HMD). Currently, pyReality provides two visualisation types i.e. 3D scatterplots and 3D bar charts. More visualisations will be added later. pyReality makes it easy to rapidly create mixed reality visualisations without having to use multiple software to model and render.

Setup pyReality

The easiest way to get started is to install the package in your Jupyter Notebook by running the following command:

!pip install pyreality

Once installed, you can include visualisation funtions using the following command:

from pyreality import pyreality as pyr

Create Visualisations

With the current version of pyReality you can create the following types of visualisations:

  1. Immersive 3D Scatterplot
  2. 3D Bar Chart
  3. 3D Scatterplot

Immersive 3D Scatterplot

The immersive scatterplot is based on BabylonJs, performant and has an immserive AR component that lets you view the data visualisation in your surroundings. The immersive scatterplot can be created using the following command:

pyr.pyRealityImmersiveScatter(df, title, color, size)
Parameter Description
df The dataframe containing input data
title Title for the visualisation and data visualisation
color One of the three colors i.e. red, green, blue
size You can optionally assign a size (<4). Default is 2.

Here is an example code to create a immersive scatterplot using pyReality:

from pyreality import pyRealityImmersiveScatter
import pandas as pd # To open CSV

df = pd.read_csv("./yearly_data.csv") # The CSV is structured as year,t1,t2,t3,t4,t5,t6 e.g. row 1: 2017,29,29,28,27,27,26,26,26 

pyr.pyRealityImmersiveScatter(df, "Yearly Data", "red", 2)

3D Bar Chart

The 3D bar chart can be created using the following command:

pyr.pyRealityBar(df, title, encodingX, encodingY, encodingZ, encodingColor)
Parameter Description
df The dataframe containing input data
title Title for the visualisation and data visualisation
encodingX Dictionary with field, timeUnit, type
encodingY Dictionary with field, axis, type, numberFormat
encodingZ Dictionary with field, type
encodingColor Dictionary with field, type, scale, legend, numberFormat

Here is an example code to create a 3D bar graph using pyReality:

from pyreality import pyreality as pyr
import pandas as pd # To process the data

df = pd.read_csv("./vax.csv") # The CSV is structured as Entity,Code,Day,total_vaccinations e.g. Argentina,ARG,2021-03-11,1919074
processdate = lambda dat: remLastThree(dat) # Lambda function applies to all cells in a column
cleandf = pd.DataFrame(df.Day.apply(processdate)) # .apply() the function to all cells
df['Day'] = cleandf['Day']
df = df.groupby(['Day','Code','Entity'],as_index=False).agg({'total_vaccinations': 'sum'})
dfUK = df[df.Entity == 'United Kingdom']
dfUS = df[df.Entity == 'United States']
dfGermany = df[df.Entity == 'Germany']
dfFrance = df[df.Entity == 'France']
dfSweden = df[df.Entity == 'Sweden']
dfCountries = pd.concat([dfUK, dfUS, dfSweden, dfFrance, dfGermany], ignore_index=True, sort=False)
dfCountries.columns = ['Month', 'Code', 'Country', 'Vaccinations']
del dfCountries['Code']

encodingX = {
    "field": "Month",
    "timeUnit": "month",
    "type": "temporal"
}

encodingY = {
    "field": "Vaccinations",
    "type": "quantitative",
    "axis": {
        "face": "back"
    },
    "numberFormat": ",.2r"
}
encodingZ = {
    "field": "Country",
    "type": "nominal"
}
encodingColor = {
    "field": "Vaccinations",
    "type": "quantitative",
    "scale": {
        "scheme": "interpolateInferno"
    },
    "legend": {
        "orient": "left"
    },
    "numberFormat": ",.2r"
}

pyr.pyRealityBar(dfCountries, "Vaccinations", encodingX, encodingY, encodingZ, encodingColor)

3D Scatterplot

The 3D scatterplot can be created using the following command:

pyr.pyRealityScatter(df, title, encodingX, encodingY, encodingZ, encodingColor)
Parameter Description
df The dataframe containing input data
title Title for the visualisation and data visualisation
encodingX Dictionary with field, timeUnit, type
encodingY Dictionary with field, axis, type, numberFormat
encodingZ Dictionary with field, type
encodingColor Dictionary with field, type, scale, legend, numberFormat

Here is an example code to create a 3D bar graph using pyReality:

from pyreality import pyreality as pyr
import pandas as pd # To process the data

df = pd.read_csv("./vax.csv") # The CSV is structured as Entity,Code,Day,total_vaccinations e.g. Argentina,ARG,2021-03-11,1919074
processdate = lambda dat: remLastThree(dat) # Lambda function applies to all cells in a column
cleandf = pd.DataFrame(df.Day.apply(processdate)) # .apply() the function to all cells
df['Day'] = cleandf['Day']
df = df.groupby(['Day','Code','Entity'],as_index=False).agg({'total_vaccinations': 'sum'})
dfUK = df[df.Entity == 'United Kingdom']
dfUS = df[df.Entity == 'United States']
dfGermany = df[df.Entity == 'Germany']
dfFrance = df[df.Entity == 'France']
dfSweden = df[df.Entity == 'Sweden']
dfCountries = pd.concat([dfUK, dfUS, dfSweden, dfFrance, dfGermany], ignore_index=True, sort=False)
dfCountries.columns = ['Month', 'Code', 'Country', 'Vaccinations']
del dfCountries['Code']

encodingX = {
    "field": "Month",
    "timeUnit": "month",
    "type": "temporal"
}

encodingY = {
    "field": "Vaccinations",
    "type": "quantitative",
    "axis": {
        "face": "back"
    },
    "numberFormat": ",.2r"
}
encodingZ = {
    "field": "Country",
    "type": "nominal"
}
encodingColor = {
    "field": "Vaccinations",
    "type": "quantitative",
    "scale": {
        "scheme": "interpolateInferno"
    },
    "legend": {
        "orient": "left"
    },
    "numberFormat": ",.2r"
}

pyr.pyRealityScatter(dfCountries, "Vaccinations", encodingX, encodingY, encodingZ, encodingColor)

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

pyreality-0.0.6.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

pyreality-0.0.6-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file pyreality-0.0.6.tar.gz.

File metadata

  • Download URL: pyreality-0.0.6.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.7

File hashes

Hashes for pyreality-0.0.6.tar.gz
Algorithm Hash digest
SHA256 b557ac428b2b2e0ec0b3eb9ee4ad2a0636db96f4509c3a9c6a77f5c930dd6b94
MD5 ff6518babeb2d5755f1f4bb3c355ff9a
BLAKE2b-256 ff049613726d9b659e6e64d72c90da06eb8df75f3e1f91ce645ea50977849e5c

See more details on using hashes here.

File details

Details for the file pyreality-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: pyreality-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.7

File hashes

Hashes for pyreality-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3fb9544ee795448906336daf6e3bcacd18e0bafa4a77ea08c5197dd9dce9cafa
MD5 a06551ac38abe0d3429362b043e9ac3b
BLAKE2b-256 44701970be35c11b8658612254765bad8974db63e4c344d9dc0d7b0d7e231f78

See more details on using hashes here.

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