Customizing Visual Styles in Plotly

Overview

Customizing Visual Styles in Plotly

Code for a workshop originally developed for an Unconference session during the Outlier Conference hosted by Data Visualization Society.

To jump right in:

Fork this repository, or download the Jupyter Notebook file Styling_Plotly_Themes_Templates.ipynb.

Ever have that feeling that a lot of data viz you see screams the tool it was made in? Using the Plotly Open Source Python Graphing Library, we will take a look under the hood of:

  • the style themes available,
  • understand the visual elements like figure and chart backgrounds, and
  • build our own default theme script inspired by 1980's computers.

This informal workshop is for a seasoned Pythonista wanting to add to your design toolbox or a newbie curious about custom interfaces beyond the usual BI tools (listen or follow along).

You can also check out all of Plotly's open source graphing libraries, including R, JavaScript, and more here.

Quick Start Prep

(most of this occurs before the workshop to follow along live...)

We're not going to spend too much time here, but if you're just starting out in Python, and want to get your hands dirty, here's a few building blocks useful to get the most from the workshop:

  1. Python ...All you really need is a Python code interpreter installed as a foundation.

    1. Start from the source, Python Software Foundation's helpful steps and downloads (yep, the be all end all source).
      1. Many computers come with a version pre-installed, a bit old, but if you don't want to touch or download anything, it may get you acquainted, at least. (to check in command line or terminal, run python --version)
    2. Or Python comes with an Anaconda installation (bigger topic than this workshop, but if you're in it for the long haul using Python consider e.g. the Individual Edition or a miniconda).

  2. A virtual environment (optional, but do this next if you're doing it.)

    1. Skip this step if the sound of it or # steps has you scared away already! Don't go, stay!
    2. It's recommended, but not necessary, to make and work in an isolated virtual environment for any Python project like this one, to help manage work requiring different versions of things.
      1. Options to manage this:
        1. I find virtualenv a sure bet,
          1. (e.g. On Mac Terminal (Zsh), from my project root folder, I ran virtualenv plotlystyle_env to make it; to activate it, I'll run source plotlystyle_env/bin/activate) _pip install virtualenv_if necessary first.
          2. I'll refer you to the docs for Windows.
        2. the simplified venv built into Python version 3.3+,
        3. Conda which I feel is cleanest with its centralized file structure, but fussy at times like an angry schoolchild, and
        4. those are the big ones.

  3. Jupyter Notebook (strongly recommended, we'll spend the workshop in the .ipynb Notebook file)

    1. Notebooks run directly in your web browser, so you need: Chrome, Safari, or Firefox (up to date Opera and Edge maybe works)

    2. If you installed an Anaconda distribution in step 1, congratulations, Jupyter Notebook is included! Read up on running the Notebook where we'll pick up!

    3. You can alternately install Jupyter Notebook with the pip package manager.

    4. If you're working in a virtual environment (step 2 above), also install the IPython kernel.

      1. Otherwise, this Jupyter Notebooks does have this automatically for your system Python interpreter.
      2. This basically supports more quick, interactive, code which makes Notebooks great for learning in chunks, and exploring without running a whole script.
  4. Kiss your brain!

Who's tired of hyperlinks and docs already?! You promised fun!

General Disclaimer

This work is open source, like Plotly Open Source Graphing Libraries, so try it, use it and spread the love by teaching someone else!
To keep up with what others are working on, join the Plotly Community Forum. Made with 💌 for the Python and data viz ecosystems under the limited liability company Data, Design & Daughters LLC doing business as Data Design Dimension by Kathryn Hurchla.

Owner
Data Design Dimension
Impact. Visualize. Grow. Full lifecycle data studio to optimize, build flows, and gain traction while you go.
Data Design Dimension
DrawBot lets you draw images taken from the internet on Skribbl.io, Gartic Phone and Paint

DrawBot You don't speak french? No worries, english translation is over here. C'est quoi ? DrawBot est un logiciel codé par V2F qui va prendre possess

V2F 205 Jan 01, 2023
Learn Data Science with focus on adding value with the most efficient tech stack.

DataScienceWithPython Get started with Data Science with Python An engaging journey to become a Data Scientist with Python TL;DR Download all Jupyter

Learn Python with Rune 110 Dec 22, 2022
Here I plotted data for the average test scores across schools and class sizes across school districts.

HW_02 Here I plotted data for the average test scores across schools and class sizes across school districts. Average Test Score by Race This graph re

7 Oct 27, 2021
Automatically generate GitHub activity!

Commit Bot Automatically generate GitHub activity! We've all wanted to be the developer that commits every day, but that requires a lot of work. Let's

Ricky 4 Jun 07, 2022
PanGraphViewer -- show panenome graph in an easy way

PanGraphViewer -- show panenome graph in an easy way Table of Contents Versions and dependences Desktop-based panGraphViewer Library installation for

16 Dec 17, 2022
Bcc2telegraf: An integration that sends ebpf-based bcc histogram metrics to telegraf daemon

bcc2telegraf bcc2telegraf is an integration that sends ebpf-based bcc histogram

Peter Bobrov 2 Feb 17, 2022
Tools for exploratory data analysis in Python

Dora Exploratory data analysis toolkit for Python. Contents Summary Setup Usage Reading Data & Configuration Cleaning Feature Selection & Extraction V

Nathan Epstein 599 Dec 25, 2022
FairLens is an open source Python library for automatically discovering bias and measuring fairness in data

FairLens FairLens is an open source Python library for automatically discovering bias and measuring fairness in data. The package can be used to quick

Synthesized 69 Dec 15, 2022
Jupyter Notebook extension leveraging pandas DataFrames by integrating DataTables and ChartJS.

Jupyter DataTables Jupyter Notebook extension to leverage pandas DataFrames by integrating DataTables JS. About Data scientists and in fact many devel

Marek Čermák 142 Dec 28, 2022
Generate the report for OCULTest.

Sample report generated in this function Usage example from utils.gen_report import generate_report if __name__ == '__main__': # def generate_rep

Philip Guo 1 Mar 10, 2022
MPL Plotter is a Matplotlib based Python plotting library built with the goal of delivering publication-quality plots concisely.

MPL Plotter is a Matplotlib based Python plotting library built with the goal of delivering publication-quality plots concisely.

Antonio López Rivera 162 Nov 11, 2022
Tidy data structures, summaries, and visualisations for missing data

naniar naniar provides principled, tidy ways to summarise, visualise, and manipulate missing data with minimal deviations from the workflows in ggplot

Nicholas Tierney 611 Dec 22, 2022
Simulation du problème de Monty Hall avec Python et matplotlib

Le problème de Monty Hall C'est un jeu télévisé où il y a trois portes sur le plateau de jeu. Seule une de ces portes cache un trésor. Il n'y a rien d

ETCHART YANG 1 Jan 06, 2022
A declarative (epi)genomics visualization library for Python

gos is a declarative (epi)genomics visualization library for Python. It is built on top of the Gosling JSON specification, providing a simplified interface for authoring interactive genomic visualiza

Gosling 107 Dec 14, 2022
1900-2016 Olympic Data Analysis in Python by plotting different graphs

🔥 Olympics Data Analysis 🔥 In Data Science field, there is a big topic before creating a model for future prediction is Data Analysis. We can find o

Sayan Roy 1 Feb 06, 2022
Alternative layout visualizer for ZSA Moonlander keyboard

General info This is a keyboard layout visualizer for ZSA Moonlander keyboard (because I didn't find their Oryx or their training tool particularly us

10 Jul 19, 2022
A Jupyter - Leaflet.js bridge

ipyleaflet A Jupyter / Leaflet bridge enabling interactive maps in the Jupyter notebook. Usage Selecting a basemap for a leaflet map: Loading a geojso

Jupyter Widgets 1.3k Dec 27, 2022
Material for dataviz course at university of Bordeaux

Material for dataviz course at university of Bordeaux

Nicolas P. Rougier 50 Jul 17, 2022
Official Matplotlib cheat sheets

Official Matplotlib cheat sheets

Matplotlib Developers 6.7k Jan 09, 2023
Declarative statistical visualization library for Python

Altair http://altair-viz.github.io Altair is a declarative statistical visualization library for Python. With Altair, you can spend more time understa

Altair 8k Jan 05, 2023