Core Visualization

Nirmal Malapaka
Wolfram Research

Join the Conversation #WolframTechConf

Introduction

Visualization Functions

Core Features

Explore Core Features

New Visualization Functions

New Core Features

Future Development

Visualization Functions Categorized

Function Visualization

Data Visualization

Statistical Visualization

Financial Visualization

Geographic Visualization

Gauges

Function Visualization

Data Visualization

Statistical Visualization

Geographic Visualization

Core Features

Data

Associations, Quantity, WeightedData...

ScalingFunctions

Layout

Grouped

Stepped

Paired

Percentile

Stacked

Style

Annotations, Style Options

Legends

Themes

Labels

Coverage

Customizability

Interoperability

Automatics

Scalability

Data

Associations

ListPlot[<|"Foo"->1,"Bar"->2|>,Evaluate@opts]

ListPlot[<|"Foo"->Range@10,"Bar"->Range[10]+5|>,Evaluate@opts]

ListPlot[<|"Foo"->Range@10,"Bar"->Range[10]+5|>,PlotLabels->Automatic,Evaluate@opts]

ListPlot[Association[Table[ToString[i]->RandomReal[{-i,i}],{i,100}]],Evaluate@opts]

Data

Quantity

data=QuantityArray[Accumulate[RandomReal[{-1/2,1/2},10^4]],"Meters"];

SmoothHistogram[data,FrameLabel->Automatic,Evaluate@opts]

SmoothHistogram3D[QuantityArray[{{1.4,2.3},{2.8,2.7},{4.2,3.5}},{"Seconds","Meters"}],AxesLabel->Automatic,Evaluate@opts]

qa=QuantityArray[RandomReal[1,20],"Meters"]

ListLinePlot[qa,FrameLabel->Automatic,Evaluate@opts,TargetUnits->"Feet"]

Data

WeightedData

data0={8,3,5,4,9,0,4,2,2,3};
w0={.1,.1,.1,.1,.1,.1,.1,.1,.1,.1};

data={8,3,5,4,9,0,4,2,2,3};
w={0.15,0.09,0.12,0.10,0.16,0.,0.11,0.08,0.08,0.09};

Grid[{QuantilePlot[#,Evaluate@opts,ClippingStyle->None,PlotMarkers->Automatic]&/@{WeightedData[data,w],WeightedData[data,w0]}}]

Grid[{ListLinePlot[#,Evaluate@opts]&/@{WeightedData[data,w], data}}]

Data

ScalingFunctions

LogPlot[{x^2,x^4},{x,0,2Pi},PlotLabels->"Expressions",Evaluate@opts]

BarChart[{1,5,10,35,60,75,140},ScalingFunctions->"Log",Evaluate@opts]

Data

ScalingFunctions

ProbabilityScalePlot[RandomVariate[WeibullDistribution[2,2],100],"Weibull",GridLines->Automatic,GridLinesStyle->"Classic",Evaluate@opts,Frame->True]

({{      , "Exponential", (Subscript[x, i]), -log(1-(Subscript[y, i]))}, {      , "Frechet", log((Subscript[x, i])), 1-log(-log((Subscript[y, i])))}, {      , "Gumbel", (Subscript[x, i]), log(-log(1-(Subscript[y, i])))}, {      , "LogNormal", log((Subscript[x, i])), 1-(Sqrt[2]) (erfc^(-1))(2 (Subscript[y, i]))}, {      , "Normal", (Subscript[x, i]), 1-(Sqrt[2]) (erfc^(-1))(2 (Subscript[y, i]))}, {      , "Rayleigh", (Subscript[x, i]), (Sqrt[(Sqrt[2]) (-log(1-(Subscript[y, i])))])}, {      , "Weibull", log((Subscript[x, i])), log(-log(1-(Subscript[y, i])))}})

Layout

Grouped, Stepped

data=RandomReal[1,{10,5}];

bc=BarChart[data,ChartLayout->"Stacked",ImageSize->360,Evaluate@opts,PlotLabel->"Stacked"];

bc2=BarChart[data[[1;;2]],ChartLayout->"Stepped",ImageSize->360,Evaluate@opts,PlotLabel->"Stepped"];

sc=PieChart[{{1,2,3},{1,1,1}},ChartLayout->#,ImageSize->360,Evaluate@opts,PlotLabel->#]&/@{"Grouped","Stacked"};

Grid[{{bc,bc2},sc}]

Layout

Paired

PairedBarChart[{1,3,5},{4,5,3},ImageSize->360]

PairedSmoothHistogram[{{1,3,5},{2,4,6}},{{2,3,6},{4,5,3}},ImageSize->360]

Style

Annotations

Plot[Style[Sin[x],Red],{x,0,10}]

Style Options

PlotMarkers

Filling

PlotStyle

Style

Legends

Style

Themes

Style

Labels

New Core Features

Stacked

slp=ListLinePlot[Transpose@data,PlotLayout->"Stacked",Evaluate@opts]

Show[bc,slp,ImagePadding->20]

New Core Features

Stacked

d={{{6.7,5.4},{7.8,8.1},{8.1,7.0},{8.9,7.3},{10.,9.}},{{5.4,5.9},{7.8,5.6},{8.,7.8},{8.5,5.2},{8.6,7.}},{{6.2,8.4},{6.3,5.8},{6.4,9.9},{6.5,5.2},{8.1,8.0}}};

StackedListPlot[d,PlotMarkers->Automatic,Evaluate@opts]

StackedListPlot[{{1,2,4,2,5,1},{1,1,1,Missing[],1,1},{1,2,3,4,5,6}},Evaluate@opts]

New Core Features

Stacked Negatives, Percentile

data={{1,-2,3,4,5},{1,2,-3,4,5},{1,2,3,-4,5}};

ListLinePlot[data,PlotLayout->"Stacked",Evaluate@opts]

ListLinePlot[Transpose@data,PlotLayout->"Percentile",Evaluate@opts]

New Core Features

Stacked, Overlaid

{data1,data2,data3}=Transpose[Table[{n,2^n,Fibonacci[n]},{n,10}]];

Grid[{ListLogPlot[{data1,data2,data3},Joined->True,PlotLegends->{n,2^n,Fibonacci[n]},PlotLayout->#,Evaluate@opts,PlotLabel->#]&/@{"Overlaid","Stacked"}}]

New Functions

StackedPlots

StackedListPlot[{{3,2,1,6,4,7,7,2,3,1},{7,8,8,3,5,9,10,3,10,10},{10,2,4,8,4,10,8,4,5,3}},Evaluate@opts]

data1=TimeSeries[{1,1,2,3,5,8,11},{"Jan 1, 2015"}];
data2=TimeSeries[{5,8,9,6,2,4,7},{"Jan 1, 2015"}];
StackedDateListPlot[{data1,data2},PlotLegends->{"first","second"},PlotTheme->"Default",Evaluate@opts]

New Core Features

ScalingFunctions

ticks=FindDivisions[{-10,10},10];

Plot[Log[x],{x,0,1000},PlotRange->{{0,1000},{Log[.5],Log[3000]}},FrameTicks->{{Transpose@{ticks,Round/@N@Power[E,ticks]},Automatic},{Automatic,Automatic}},Evaluate@opts]

LogPlot[x,{x,0,1000},PlotRange->{{0,1000},{.5,3000}},Evaluate@opts]

New Core Features

ScalingFunctions

New Core Features

ScalingFunctions

({{      , "Log", use logarithmic scaling}, {      , "Reverse", reverse the coordinate direction}, {      , "Reciprocal", use reciprocal scaling}, {      , "Log10", use logarithmic scaling with base 10}, {      , "Log2", use logarithmic scaling with base 2}, {      , {f,(f^(-1))}, use the scaling function f and its inverse (f^(-1))}, {      , {(Subscript[s, 1]),(Subscript[s, 2]),…}, use several scaling functions (Subscript[s, i]) for direction i}})

Future

FeatureSpacePlot3D

Geographic Plots

Labeling

Uncertainty

Layouts

Core Visualization

Nirmal Malapaka
Wolfram Research

Join the Conversation #WolframTechConf

Initialization

$PlotTheme={"Presentation","Large","ThickLine","Business"};

opts={LabelStyle->16,ImageSize->500};