Macro (SVB) Programs Example - Accessing and Customizing Graphs
This program illustrates how to access Statistica Graphs using different methods and how to create and customize them.
Sub MainCustomizedLinePlot
End Sub
Sub OpenFromFile
'open graph from predefined disk file
Dim g As Graph Set g = Graphs.Open ("p:\data\3d.stg")
g.Visible = TrueEnd Sub Sub AccessTopGraph
'do something with top most graph
Dim g As Graph Set g = ActiveGraph
MsgBox "Active graph: " + g.Path + g.Name
End Sub
Sub SimpleLinePlot
'create a simple line plot from Active Dataset
Dim a As Analysis Set a = Analysis (sc2dLinePlots)
a.Dialog.Variables = 6
Set g = a.Dialog.Graphs(1) g.Visible = True
End Sub
Sub LinePlotWithOptions
'create a multiple line plot from Active Dataset
'set reverse axis and turn off default title
Dim a As Analysis Set a = Analysis (sc2dLinePlots)
Dim lp As LinePlot2D Set lp = a.Dialog
'set plot type and variables
lp.GraphType = scLineMultiplePlot
lp.Variables = "6 7"
'change options
lp.Options.DisplayDefaultTitle = False
lp.Options.XYAxisPosition = scAxisReverse
lp.Graphs(1).Visible = True
End Sub
Sub CustomizedLinePlot
'create a customized line plot from Active
Dataset Dim a As Analysis
Set a = Analysis (sc2dLinePlots)
a.Dialog.GraphType = scLineMultiplePlot
a.Dialog.Variables = "6 7 8"
'grab graph object
Set g = a.Dialog.Graphs(1)
Dim bFirstLevel, bSecondLevel, bThirdLevel, bFourthLevel As Boolean
bFirstLevel = True
bSecondLevel = True
bThirdLevel = True
bFourthLevel = True
'customize titles, background
If bFirstLevel Theng.Titles(1) = "New (better?) title"
g.GraphWindow.Background.Color = RGB (255,255,0)
End If
' get graph content
Dim l As Layout2D Set l = g.Content
'customize plots: axis title and set line set to solid
If bSecondLevel Then
'set y axis manual scale
Dim y As Axis2D
Set y = l.Axes.YAxis y.SetManualRange(0, 20)
y.RangeMode = scgManualRange
y.StepSize = 5 y.StepMode = scgManualStep
' set x axis title and turn off gridlines
Dim x As Axis2D
Set x = l.Axes.XAxis
x.Title = "Sequential cases"
x.DisplayMajorGridLine = False
' customize gridlines on y axis
y.MajorGridLine.ForegroundColor = RGB(0,0,0)
y.MajorGridLine.Type = scgSolid
End If
Dim pp As Plots2D
Set pp = l.Plots
If bThirdLevel Then
' plot customizations
' line patterns pp.Item(1).Line.Type = scgSolid
pp.Item(2).Line.Type = scgSolid
pp.Item(3).Line.Type = scgSolid
' make third plot stand out from the rest
pp.Item(3).Marker.Size = 6
pp.Item(3).Line.Weight = .75
End If
If bFourthLevel
Then
' changing plot variable values
' we will set values <= 0 to mean of previous and next value
Dim v As Variable
Set v = pp.Item(3).Variable(2)
For vind = 2 To v.ValuesCount() - 1If v.Value(vind) <= 0 Then
v.Value(vind) = (v.Value(vind-1) + v.Value(vind+1))/2
End If
Next vind
End If g.Visible = TrueEnd Sub
Copyright © 2021. Cloud Software Group, Inc. All Rights Reserved.
