BookmarkSubscribeRSS Feed
Choose Language Hide Translation Bar
Highlighted
Michael_MXAK

Community Trekker

Joined:

Aug 15, 2016

Monday Math Art Experiment: A Bird in Flight

After reading this post on the excellent Futility Closet blog, I decided to see if I could replicate this mathematical art in JMP. Here's that beautiful bird in our beloved Graph Builder (in my company's brand colors)!

 

Bird in Flight.png

 

I've implement the calculations and data table as a script, which is attached.

 

I'd love to see any suggestions on ways to streamline this script (other than the trivial case of graphing fewer points), since my current implementation feels pretty inefficient to me. I attempted some other methods of building the table and did not meet success. Those remain in the script as comments. I would maybe even consider them bugs! (tested on JMP Pro 14)

 

A note for @XanGregg to maybe look into, it seems like this graph breaks the ability to set point transparency or to change the color scheme. Doing either results in complete opacity with a single color across the whole plot.

 

~Michael Akerman,

Data Scientist @ Novozymes

1 ACCEPTED SOLUTION

Accepted Solutions
gzmorgan0

Super User

Joined:

Jul 25, 2016

Solution

Re: Monday Math Art Experiment: A Bird in Flight

Okay, I promise this is my last post. JMP always can make it better with color. The details and beauty of this Math art can only be appreciated with color. The script has been modified to use a continuous color theme "Slate" and the circle drawing order was changed.  The "Paired" color theme also provides a nice view. 

ColoredBirdInFlight.png

5 REPLIES 5
gzmorgan0

Super User

Joined:

Jul 25, 2016

Re: Monday Math Art Experiment: A Bird in Flight

Michael,

This was fun!

Instead of drawing each point (7+million), I decided to draw 20001 circles. See attached script. I think coloring by pixel radius and changing the order of circles (center to right then center to left, and top to bottom) would be cool. A simple Bubble Plot using column :rad for both bubble size and color isn't bad as well. 

 

birdinflight.png

So fun! Thank You.

Michael_MXAK

Community Trekker

Joined:

Aug 15, 2016

Re: Monday Math Art Experiment: A Bird in Flight

I love this approach, because it's something I never would have thought to do! Bubble plot also works great. Good calls :)

~Michael
Michael_MXAK

Community Trekker

Joined:

Aug 15, 2016

Re: Monday Math Art Experiment: A Bird in Flight

I was working on an animation for another purpose earlier, and thought it would be interesting to capture an animation of the drawing process of Bird In Flight. I captured a frame every 50th circle, which still ends up being pretty smooth. JSL attached to this post (based on your script, @gzmorgan0)! 

 

 

giphy

gzmorgan0

Super User

Joined:

Jul 25, 2016

Solution

Re: Monday Math Art Experiment: A Bird in Flight

Okay, I promise this is my last post. JMP always can make it better with color. The details and beauty of this Math art can only be appreciated with color. The script has been modified to use a continuous color theme "Slate" and the circle drawing order was changed.  The "Paired" color theme also provides a nice view. 

ColoredBirdInFlight.png

XanGregg

Staff

Joined:

Jun 23, 2011

Re: Monday Math Art Experiment: A Bird in Flight

Thanks for sharing your script, along with your commented out alternatives, Michael.I didn't get the crash, but maybe it was a memory thing that my machine handled better.

 

The transparency issue is because the graph switched into "fast marker mode" because there were so many points. You can override that in the graph right-click menu.

 

Attached is a version that just stores the circle centers like @gzmorgan0 did, but I used Graph Builder (of course!) instead of a custom graph script. I used the circle marker and r^2 for the size variable. Took a little tweaking of the marker size in the legend to get the circle sizes right, and it will depend on the graph size. Marker size is in pixels instead of data coordinates and can't separately control the width of the circle edge, so the graph script is more robust in those ways.birdgb.png