Skip to content

Commit

Permalink
Adding initial contents (#1)
Browse files Browse the repository at this point in the history
* Adding initial contents

* website_release

* Fixing build command [website_release]

* Apply suggestions from code review

Co-Authored-By: James A. Bednar <jbednar@users.noreply.github.com>

* Using pyctdev [website_release]

* Allow packages from defaults [website_release]

* Adding flake8 [website_release]

* Linting and adding exceptions [website_release]

* Pinning tornado [website_release]

* Using proper doit command

* website_release

* Added overviews

* Removing overviews links from nav

* MetaPlot -> HoloViz

* Only run tests if there are notebooks
  • Loading branch information
jsignell committed Jun 11, 2019
1 parent e1c5903 commit f18f32f
Show file tree
Hide file tree
Showing 18 changed files with 280 additions and 2 deletions.
5 changes: 5 additions & 0 deletions .gitignore
@@ -0,0 +1,5 @@
# Jupyter notebook
*.ipynb_checkpoints/

# nbsite output
builtdocs/
46 changes: 46 additions & 0 deletions .travis.yml
@@ -0,0 +1,46 @@
sudo: false
language: generic
os:
- linux

env:
global:
- PYENV_VERSION=3.6

stages:
- test
- name: website_release
if: commit_message =~ /^.*(website_release).*$/

jobs:
include:
- &test
stage: test
before_install:
- pip install pyctdev && doit miniconda_install
- export PATH="$HOME/miniconda/bin:$PATH" && hash -r
- doit ecosystem_setup
install:
- doit env_create
- source activate pyviz
- doit env_capture
script:
- if ! [ $(ls -A ./notebooks/**/*.ipynb) ]; then
echo 'No notebooks found' && exit 0;
fi;
- doit test_all

- &website_release
<<: *test
stage: website_release
script: doit build_website
deploy:
- provider: pages
skip_cleanup: true
github_token: $GITHUB_TOKEN
local_dir: ./builtdocs
on:
all_branches: true

notifications:
email: false
5 changes: 3 additions & 2 deletions README.md
@@ -1,2 +1,3 @@
# website
Source for new pyviz website
# PyViz.org

Source materials to build site
21 changes: 21 additions & 0 deletions doc/_static/custom.css
@@ -0,0 +1,21 @@
div.body {
max-width: 2000px;
}

iframe {
-moz-transform: scale(0.25, 0.25);
-webkit-transform: scale(0.25, 0.25);
-o-transform: scale(0.25, 0.25);
-ms-transform: scale(0.25, 0.25);
transform: scale(0.25, 0.25);
-moz-transform-origin: top left;
-webkit-transform-origin: top left;
-o-transform-origin: top left;
-ms-transform-origin: top left;
transform-origin: top left;

width: 3100px;
margin-right: -2500px;
height: 1600px;
margin-bottom: -1200px;
}
Binary file added doc/_static/favicon.ico
Binary file not shown.
Binary file added doc/_static/logo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/assets/PythonVisLandscape.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions doc/conf.py
@@ -0,0 +1,30 @@
# noqa
from nbsite.shared_conf import *

project = u'PyViz'
authors = u'PyViz authors'
copyright = u'\u00a9 2019, ' + authors
description = 'How to solve visualization problems with Python tools.'

version = release = '0.0.1'
extensions.extend(['m2r'])

html_static_path += ['_static']
html_favicon = 'favicon.ico'
html_theme_options = {
'logo': 'logo.png',
'logo_name': False,
'page_width': '80%',
'font_family': "Ubuntu, sans-serif",
'font_size': '0.9em',
'extra_nav_links': {'Github': 'https://github.com/pyviz/website'},
'show_powered_by': False,
}

html_context.update({
'PROJECT': project,
'DESCRIPTION': description,
'AUTHOR': authors,
# WEBSITE_SERVER is optional for tests and local builds, but allows defining a canonical URL for search engines
'WEBSITE_SERVER': 'https://pyviz.org',
})
16 changes: 16 additions & 0 deletions doc/index.md
@@ -0,0 +1,16 @@
# How to visualize data in Python

Welcome to PyViz! PyViz is a coordinated effort to make data visualization in Python easier to use, easier to learn, and more powerful.

PyViz contains:

- [Overviews](overviews/index.html) of the visualization packages available in Python, how they relate to each other, and the core concepts that underlie them.
- [Tutorials](tutorials/index.html) showing how to use the available tools to accomplish various categories of tasks.
- [Topic examples](htts://examples.pyviz.org) of using Python viz tools to analyze or describe specific datasets in a particular domain or field of research.

## This site
If you are a part of the Python data visualization landscape, then this is _your_ site! All content has been contributed by individual library authors and users, and you could be next!
Please open an issue or
PR on [this GitHub repo](https://github.com/pyviz/pyviz) to start a conversation.

**NOTE:** Some of the material previously hosted under Tutorials on this site is now hosted by holoviz.org and is linked from the "HoloViz" section of the Tutorials heading on this site.
12 changes: 12 additions & 0 deletions doc/index.rst
@@ -0,0 +1,12 @@
.. mdinclude:: index.md

.. toctree::
:titlesonly:
:hidden:
:maxdepth: 2

Home <self>
Overviews <overviews/index>
Tutorials <tutorials/index>
Topics <https://examples.pyviz.org>
Links <links>
29 changes: 29 additions & 0 deletions doc/overviews/index.md
@@ -0,0 +1,29 @@
# Overviews

The Python visualization landscape can seem daunting at first. These overviews attempt to shine light on common patterns and use cases, comparing or discussing multiple plotting libraries.

<iframe src="https://rougier.github.io/python-visualization-landscape/landscape-colors.html" frameborder="0" allowfullscreen></iframe>

*Adaptation of Jake VanderPlas graphic about python visualization landscape, by Nicolas P. Rougier*

- [Python Data Visualization 2018](https://www.anaconda.com/python-data-visualization-2018-why-so-many-libraries)
15 Nov 2018 - 14 Dec 2018 James A. Bednar, Anaconda, Inc. Three blog posts surveying the history and breadth of several dozen Python viz libraries, without example code.
[Updated in 2019 as an eBook](https://know.anaconda.com/eBook-PyVizeBookLP_ReportRegistration.html?utm_source=pyviz.org&utm_campaign=pyviz&utm_content=ebook).

- [The Python Visualization Landscape](https://www.youtube.com/watch?v=FytuB8nFHPQ)
20 May 2017 Jake VanderPlas, U. Washington. 30-minute talk surveying the history and breadth of Python viz libraries. [[slides]](https://speakerdeck.com/jakevdp/pythons-visualization-landscape-pycon-2017).

- [10 Useful Python Data Visualization Libraries for Any Discipline](https://mode.com/blog/python-data-visualization-libraries)
8 Jun 2016 Melissa Bierly, Mode.com. Blog post briefly describing matplotlib, seaborn, ggplot, bokeh, pygal, plotly, geoplotlib, gleam, missingno, and leather, with examples running on the Mode server.

- [Comparing 7 Tools For Data Visualization in Python](https://www.dataquest.io/blog/python-data-visualization-libraries)
12 Nov 2015 Vik Paruchuri, Dataquest. Blog post illustrating usage of matplotlib, vispy, bokeh, seaborn, pygal, folium, and networkx, with code, for an airport/flight dataset.

- [Overview of Python Visualization Tools](https://pbpython.com/visualization-tools-1.html)
20 Jan 2015 - 25 Apr 2017 Chris Moffitt, Practical Business Python. Three blog posts with examples of using pandas, seaborn, ggplot, bokeh, pygal, plotly, altair, matplotlib.

- [Python Graph Gallery](https://python-graph-gallery.com)
30 Apr 2017 - 7 Jan 2018 Yan Holtz. Website with examples of plots made with Seaborn, Matplotlib, Pandas, with output and Python code, used in [data-to-viz.com](https://www.data-to-viz.com).

- [Python Data Visualization — Comparing 5 Tools](https://codeburst.io/overview-of-python-data-visualization-tools-e32e1f716d10)
6 Dec 2017 Elena Kirzhner, Codeburst. Blog post with simple comparisons of Pandas, Seaborn, Bokeh, Pygal, and Plotly code and output.
6 changes: 6 additions & 0 deletions doc/overviews/index.rst
@@ -0,0 +1,6 @@
.. mdinclude:: index.md

.. toctree::
:titlesonly:
:hidden:
:maxdepth: 2
10 changes: 10 additions & 0 deletions doc/tutorials/index.md
@@ -0,0 +1,10 @@
# Tutorials

Tutorials are sets of executable files (normally notebooks) that build on
each other and build understanding. They should have exercises and describe
architecture as it is encountered.


- [Bokeh](https://mybinder.org/v2/gh/bokeh/bokeh-notebooks/master?filepath=tutorial%2F00%20-%20Introduction%20and%20Setup.ipynb): an interactive visualization library that targets modern web browsers for presentation. Its goal is to provide elegant, concise construction of versatile graphics, and to extend this capability with high-performance interactivity over very large or streaming datasets. Bokeh can help anyone who would like to quickly and easily create interactive plots, dashboards, and data applications.
- [Matplotlib](https://matplotlib.org/3.1.0/tutorials/index.html): a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. Matplotlib can be used in Python scripts, the Python and IPython shells, the Jupyter notebook, web application servers, and four graphical user interface toolkits.
- [HoloViz](https://pyviz.org/tutorial): high-level tools that make it easier to apply Python plotting libraries to your data. Includes Panel, Datashader, Holoviews, Geoviews, and hvplot.
12 changes: 12 additions & 0 deletions doc/tutorials/index.rst
@@ -0,0 +1,12 @@
.. want to include these in the toctree
.. mdinclude:: index.md

.. toctree::
:titlesonly:
:hidden:
:maxdepth: 2

Bokeh <https://mybinder.org/v2/gh/bokeh/bokeh-notebooks/master?filepath=tutorial%2F00%20-%20Introduction%20and%20Setup.ipynb>
Matplotlib <https://matplotlib.org/3.1.0/tutorials/index.html>
HoloViz <https://pyviz.org/tutorial>
31 changes: 31 additions & 0 deletions dodo.py
@@ -0,0 +1,31 @@
import os

if "PYCTDEV_ECOSYSTEM" not in os.environ:
os.environ["PYCTDEV_ECOSYSTEM"] = "conda"

from pyctdev import * # noqa: api


def task_ecosystem_setup():
"""Set up conda with updated version, and yes set to always"""
return {'actions': [
"conda config --set always_yes True",
"conda update conda",
]}


def task_env_create():
"""Create environment from environment.yml and environment-dev.yml"""
return {'actions': [
"pip uninstall -y doit pyctdev",
"conda env update -f environment.yml -n pyviz",
"conda env update -f environment-dev.yml -n pyviz",
]}


def task_build_website():
"""Build website using nbsite"""
return {'actions': [
"nbsite generate-rst --org pyviz --project-name pyviz --examples notebooks", # noqa
"nbsite build --what=html --output=builtdocs",
]}
11 changes: 11 additions & 0 deletions environment-dev.yml
@@ -0,0 +1,11 @@
name: pyviz
channels:
- conda-forge
dependencies:
- flake8
- m2r
- pyviz::nbsite
- pyviz::nbsmoke
- pyviz::pyctdev
- pytest
- tornado<6
6 changes: 6 additions & 0 deletions environment.yml
@@ -0,0 +1,6 @@
name: pyviz
channels:
- conda-forge
dependencies:
- bokeh
- matplotlib
42 changes: 42 additions & 0 deletions tox.ini
@@ -0,0 +1,42 @@
# For use with pyct (https://github.com/pyviz/pyct), but just standard
# tox config (works with tox alone).

[tox]
# python version test group extra envs extra commands
envlist = {py36}-{notebooks,lint,all}-{default,notebooks,tests}-{dev}
build = wheel

[_notebooks]
description = Test that notebooks run
deps = .[notebooks]
commands = pytest --nbsmoke-run -k ".ipynb"

[_lint]
description = Flake check python and notebooks
deps = .[tests]
commands = flake8
pytest --nbsmoke-lint -k ".ipynb"

[_all]
description = Run all tests
deps = .[notebooks, tests]
commands = {[_lint]commands}
{[_notebooks]commands}

[testenv]
changedir = {envtmpdir}
commands = notebooks: {[_notebooks]commands}
lint: {[_lint]commands}
all: {[_all]commands}
deps = notebooks: {[_notebooks]deps}
lint: {[_lint]deps}
all: {[_all]deps}

[pytest]
addopts = -v --pyargs --doctest-modules --doctest-ignore-import-errors
norecursedirs = doc .git dist build _build .ipynb_checkpoints
nbsmoke_cell_timout = 360

[flake8]
include = *.py
exclude = .git,__pycache__,.tox,.eggs,*.egg,doc,dist,build,_build,.ipynb_checkpoints

0 comments on commit f18f32f

Please sign in to comment.