Using a custom map as a selection filter in JMP 12
For Discovery 2014, I shared how I used JSL to process nearly four years of text-based food logs and Excel-formatted activity data for visualization with JMP’s Graph Builder. I posted extensively on the graphs that went along with my project in a JMP blog series here. In comparison, importing data from my handwritten workout logs into JMP has been a very manual process! I dedicated some early morning hours over the last few months to entering data on 1) all weight training workouts I completed in 2014 and 2) my workouts during the month of January in the year ranges 1999-2005 and 2010-2013. Rows in my JMP table contained unique exercise-weight-set-rep combinations accompanied by date, workout name, workout start and end times and durations, and a formula column calculating total weight lifted for each row. I have created a number of visualizations of this data, and also a series of Recode scripts to manage the data cleanup. I found it was important to standardize exercise names so that the aggregation by exercise and body part was as complete as possible.
In creating visualizations of this data table, have used a variety of filtering strategies to visualize my workout patterns by year, month, and workout program. I started by using JMP's local data filter to select specific workouts to view, or date ranges to restrict the view of individual reports. During last week's snow event, I created a custom female muscle map using the Custom Map Creator JMP add-in (written by former JMP developer Justin Mosiman and available on the JMP user community here). My colleague Xan Gregg told me about the add-in, which makes it easy to trace shapes and create the paired shape file and X-Y coordinate file that comprise a custom JMP map.
My workout data file contains a column corresponding to the ShapeID values in these files, and after placing my custom map files in place in my AppData/Roaming user location for JMP 12, I can specify the column containing my shape ids as a Map Shape in Graph Builder (or right click to select Muscle Shapes as a background map elsewhere). I can color the muscle shapes using metrics like sum of total weight lifted and max weight lifted for each general muscle area area.
But perhaps coolest of all, I can use my muscle map as a selection filter to drill down into my data and see detailed workout results by area and exercise. JMP 12 introduced selection filtering to allow a graph to be the filter for one or more other graphs within a report. Here is an example of a combined report I created. My muscle map is colored by the proportion of total weight lifted by each muscle area. Linked graphs display total weight lifted by body part and exercise (right) and month (below). No body parts are selected in the report in the first screen shot, so data is shown for all areas:
Now, here is an example where I selected my back and shoulder muscle areas in the upper left to filter and show data only for exercises that primarily worked those areas. As you can see, the other graphs in the report are now filtered to only include data for those areas. By using a stacked bar chart for the bottom graph, I can show the proportion of total weight lifted for each area out of the combined total.
I have submitted an abstract on this topic for JMP Discovery 2015 in San Diego. I hope it gets accepted! This project has given me a lot of new ideas about how to use selection filtering for other work-related projects. It will also help motivate me to enter more of my workout data into JMP. I have data in notebooks dating back to mid-October 1998. Although I haven't tracked continuously since then, I have large stretches of data on my workouts years stretching from 1998-2005 and 2009-present. Unfortunately, in my senior year of high school, I lost the workout notebook I had kept for several years when I used to train very heavy in the gym in preparation for track season when I participated in shot put and discus events. But I still have plenty of data to keep me busy!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.