GUI for 2-D (beta)

Kevin Daily
Wolfram Research 
Wolfram Technology Group

Join the Conversation #WolframTechConf

Motivation I

Creating graphics in the Wolfram Language can be suprisingly simple, yet also suprisingly challenging. One-liners can achieve stunning visualizations:

JuliaSetPlot[0.365-0.4I,PlotLegends->Automatic]

But any fine-tuning requires almost full knowledge of the graphics language and/or the documented options. Some 2-D options include

AxesLabel

Filling

FrameTicks

PlotRange

PlotStyle

Ticks

Motivation II

Past version

Experimental`Explore[Sin[x]]

Grace

GUI

Overview

Viewer

Sets

Axes

Frames

Plot

Quick save/load

Design (database)

Extremely flexible to add new features "Open source code"

Can tie each dynamic control to a particular part

Can create features that don’t exist in the Wolfram Language

Sets and Import

Sets controls the settings and styles of the plotted data sets. It also contains the GUI to import new data.

Import

checks for errors in input

can choose a name, or use a default naming scheme “Set#”

(bug) should warn about overwriting existing sets

Function

Numeric functions, parametric numeric functions

can specify list of functions to thread over

Specify range or list of values

Data

only {x,y} data is currently supported

can input either raw data, or symbols that contain raw data

Points

Wrappers not yet implemented (only controller works)

Lines (not yet implemented)

Frames (Axes)

Frames controls the FrameTicks including positions, styles, and labels

Position

Major/Minor/Custom are treated differently

Selection

Ticks are not modified unless a selection of ticks is made

Can choose all or none

Can copy all settings (styles and label) to apply on a different selection later

Settings

Tick Styles

Tick length, color, thickness and dashing settings

Tick length is in scaled units by default, others must be chosen so

Can copy styles to apply on a different selection later

Tick Labels

Tick label, font, font size, and font styling settings

Font size must be selected to be in scaled units

Can copy label settings to apply on a different selection later

Plot

Plot controls the visible plot range, scaling, and enabling of feature

Plot range

acts as a viewer of sorts

plot changes dynamically with moving slider

Enabled

self-explanitory

Scaling

supports a number of logarithmic scales, inverted scale

can put in pure function to set new scaling

TODO: automatic check for “bad” values (to avoid pink boxes)

Wish list

focus on WYSIWYG (have to abandon constructors like Plot...)

add documentation (internal and external)

allow ticks to be added via non-linear functions (aka via Table)

add error bar support

add filling support

add axes as an available layer when frames are also enabled

add styles menu

add other 2-D plots, like PolarPlot

add reversed axes

add annotation (Rectangles, Circles, vectorized text...)

long term goals include....