Create a gist now

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Draw a minimalist Christmas tree with Python and their awesome libraries
# coding: utf-8
"""
Draw a minimalist Christmas tree with Python and their awesome libraries.
Code inspired by a StackEchange post and the Christmas spirit.
http://codegolf.stackexchange.com/questions/15860/make-a-scalable-christmas-tree/16358#16358
Author: Franz Navarro - CAChemE.org
License: MIT
Dependencies: Python, NumPy, matplotlib
"""
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
# Calculate spiral coordinates for the Xmas tree
theta = np.linspace(-8 * np.pi, 8 * np.pi, 200)
z = np.linspace(-3, 0, 200)
r = 5
x = r * np.sin(theta)*z
y = r * np.cos(theta)*z
# Use matplotib and its OOP interface to draw it
fig = plt.figure() # Create figure
ax = fig.gca(projection='3d') # It's a 3D Xmas tree!
ax.view_init(15, 0) # Set a nice view angle
ax._axis3don = False # Hide the 3d axes
# Plot the Xmas tree as a line
ax.plot(x, y, z,
c='green', linewidth=2.5)
# Every Xmas tree needs a star
ax.scatter(0, 0, 0.2,
c='red', s=250, marker='*')
# Type here your best whishes
ax.set_title(u"¡Feliz Navidad!")
plt.show()
@franktoffel

This comment has been minimized.

Show comment
Hide comment
Owner

franktoffel commented Apr 5, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment