Tutorial Video
VIDEO
Plotting a Basic Figure
Supposing we have the following code:
x=[ 1: 10] ' ;
y=2*x;
z=x. ^2;
figure ;
plot( x,y);
hold ( ' on' ) ;
scatter( x,y,z);
hold( ' off' ) ;
figure ;
We generate the following bland looking figures below:
Selecting the Figure we Wish to Modify:
Now supposing we want to go back to figure 1 and modify the existing line and scatter plot. First we will need to select figure 1. To do this we can either select figure 1 with the mouse or type:
figure( 1)
Assigning the Figure, Axes and Plots to Variable Names
Now we can assign the selected figure to a variable using get current figure gcf
MyFigure=gcf
If we expand all properties we can see Children: [1×1 Axes]
We can now assign the Axes to another variable using:
MyAxes=MyFigure. Children
If we expand all properties we can see Children: [2×1 Graphics]
We can look at this in more detail using:
MyGraphics=MyAxes. Children
We can see the first value in the MyGraphics Array is the Scatter Plot and the second value is the Line Plot.
We can assign the Scatter Plot to a variable:
MyScatter=MyGraphics( 1)
If we expand all properties we can see
Show More
Annotation: [1×1 matlab.graphics.eventdata.Annotation]
BeingDeleted: 'off'
BusyAction: 'queue'
ButtonDownFcn: ''
CData: [1×3 double]
CDataSource: ''
Children: [0×0 GraphicsPlaceholder]
Clipping: 'on'
CreateFcn: ''
DeleteFcn: ''
DisplayName: ''
HandleVisibility: 'on'
HitTest: 'on'
Interruptible: 'on'
LineWidth: 0.5000
Marker : 'o'
MarkerEdgeAlpha : 1
MarkerEdgeColor : 'flat'
MarkerFaceAlpha : 1
MarkerFaceColor : 'none'
Parent: [1×1 Axes]
PickableParts: 'visible'
Selected: 'off'
SelectionHighlight: 'on'
SizeData : [1×10 double]
SizeDataSource: ''
Tag: ''
Type: 'scatter'
UIContextMenu: [0×0 GraphicsPlaceholder]
UserData: []
Visible: 'on'
XData : [1×10 double]
XDataSource: ''
YData : [1×10 double]
YDataSource: ''
ZData: [1×0 double]
ZDataSource: ''
We can change these properties using dot indexing:
MyScatter. XData=[ 2: 2: 20] ;
MyScatter. YData=[ 4: 4: 40] ;
MyScatter. SizeData=[ 40: -4: 4] ;
MyScatter. Marker=' d ' ;
MyScatter. LineWidth=2;
MyScatter. MarkerEdgeColor=[ 0, 1, 1];
MyScatter. MarkerEdgeAlpha=0.2;
MyScatter. MarkerFaceColor=' m ' ;
MyScatter. MarkerFaceAlpha=0.5;
We can now assign the Line Plot to a variable:
MyLine=MyGraphics(2)
If we expand all properties we can see
Show More
AlignVertexCenters: 'off'
Annotation: [1×1 matlab.graphics.eventdata.Annotation]
BeingDeleted: 'off'
BusyAction: 'queue'
ButtonDownFcn: ''
Children: [0×0 GraphicsPlaceholder]
Clipping: 'on'
Color : [0 0.4470 0.7410]
CreateFcn: ''
DeleteFcn: ''
DisplayName: ''
HandleVisibility: 'on'
HitTest: 'on'
Interruptible: 'on'
LineJoin: 'round'
LineStyle : '-'
LineWidth : 0.5000
Marker: 'none'
MarkerEdgeColor: 'auto'
MarkerFaceColor: 'none'
MarkerIndices: [1 2 3 4 5 6 7 8 9 10]
MarkerSize: 6
Parent: [1×1 Axes]
PickableParts: 'visible'
Selected: 'off'
SelectionHighlight: 'on'
Tag: ''
Type: 'line'
UIContextMenu: [0×0 GraphicsPlaceholder]
UserData: []
Visible: 'on'
XData : [1 2 3 4 5 6 7 8 9 10]
XDataMode: 'manual'
XDataSource: ''
YData : [2 4 6 8 10 12 14 16 18 20]
YDataSource: ''
ZData: [1×0 double]
ZDataSource: ''
Modification Using Dot Indexing
We can change these properties using dot indexing:
MyLine. Color=' r ' ;
MyLine. LineStyle=' : ' ;
MyLine. LineWidth=2;
MyLine. XData=[ 2: 2: 20] ;
MyLine. YData=[ 4: 4: 40];
We can now look at the full properties of MyAxes.
MyAxes
If we expand these properties we can see:
Show More
ALim: [0 1]
ALimMode: 'auto'
ActivePositionProperty: 'outerposition'
AlphaScale: 'linear'
Alphamap: [1×64 double]
AmbientLightColor: [1 1 1]
BeingDeleted: 'off'
Box : 'on'
BoxStyle: 'back'
BusyAction: 'queue'
ButtonDownFcn: ''
CLim: [0 1]
CLimMode: 'auto'
CameraPosition: [11 20 17.3205]
CameraPositionMode: 'auto'
CameraTarget: [11 20 0]
CameraTargetMode: 'auto'
CameraUpVector: [0 1 0]
CameraUpVectorMode: 'auto'
CameraViewAngle: 6.6086
CameraViewAngleMode: 'auto'
Children: [2×1 Graphics]
Clipping: 'on'
ClippingStyle: '3dbox'
Color : [1 1 1]
ColorOrder: [7×3 double]
ColorOrderIndex: 3
ColorScale: 'linear'
Colormap: [64×3 double]
CreateFcn: ''
CurrentPoint: [2×3 double]
DataAspectRatio: [9 20 1]
DataAspectRatioMode: 'auto'
DeleteFcn: ''
FontAngle : 'normal'
FontName : 'Helvetica'
FontSize : 10
FontSizeMode: 'auto'
FontSmoothing: 'on'
FontUnits: 'points'
FontWeight: 'normal'
GridAlpha: 0.1500
GridAlphaMode: 'auto'
GridColor : [0.1500 0.1500 0.1500]
GridColorMode: 'auto'
GridLineStyle: '-'
HandleVisibility: 'on'
HitTest: 'on'
Interruptible: 'on'
LabelFontSizeMultiplier: 1.1000
Layer: 'bottom'
Legend: [0×0 GraphicsPlaceholder]
LineStyleOrder: '-'
LineStyleOrderIndex: 1
LineWidth : 0.5000
MinorGridAlpha: 0.2500
MinorGridAlphaMode: 'auto'
MinorGridColor : [0.1000 0.1000 0.1000]
MinorGridColorMode: 'auto'
MinorGridLineStyle : ':'
NextPlot: 'replace'
OuterPosition: [0 0 1 1]
Parent: [1×1 Figure]
PickableParts: 'visible'
PlotBoxAspectRatio: [1 0.7896 0.7896]
PlotBoxAspectRatioMode: 'auto'
Position: [0.1300 0.1100 0.7750 0.8150]
Projection: 'orthographic'
Selected: 'off'
SelectionHighlight: 'on'
SortMethod: 'childorder'
Tag: ''
TickDir: 'in'
TickDirMode: 'auto'
TickLabelInterpreter: 'tex'
TickLength: [0.0100 0.0250]
TightInset: [0.0369 0.0540 0.0137 0.0206]
Title: [1×1 Text]
TitleFontSizeMultiplier: 1.1000
TitleFontWeight: 'bold'
Toolbar: [1×1 AxesToolbar]
Type: 'axes'
UIContextMenu: [0×0 GraphicsPlaceholder]
Units: 'normalized'
UserData: []
View: [0 90]
Visible: 'on'
XAxis: [1×1 NumericRuler]
XAxisLocation: 'bottom'
XColor : [0.1500 0.1500 0.1500]
XColorMode: 'auto'
XDir: 'normal'
XGrid : 'off'
XLabel: [1×1 Text]
XLim : [2 20]
XLimMode: 'auto'
XMinorGrid : 'off'
XMinorTick: 'off'
XScale : 'linear'
XTick: [2 4 6 8 10 12 14 16 18 20]
XTickLabel: {10×1 cell}
XTickLabelMode: 'auto'
XTickLabelRotation: 0
XTickMode: 'auto'
YAxis: [1×1 NumericRuler]
YAxisLocation : 'left'
YColor: [0.1500 0.1500 0.1500]
YColorMode: 'auto'
YDir: 'normal'
YGrid: 'off'
YLabel: [1×1 Text]
YLim : [0 40]
YLimMode: 'auto'
YMinorGrid : 'off'
YMinorTick : 'off'
YScale : 'linear'
YTick: [0 5 10 15 20 25 30 35 40]
YTickLabel: {9×1 cell}
YTickLabelMode: 'auto'
YTickLabelRotation: 0
YTickMode: 'auto'
ZAxis: [1×1 NumericRuler]
ZColor: [0.1500 0.1500 0.1500]
ZColorMode: 'auto'
ZDir: 'normal'
ZGrid: 'off'
ZLabel: [1×1 Text]
ZLim: [-1 1]
ZLimMode: 'auto'
ZMinorGrid: 'off'
ZMinorTick: 'off'
ZScale: 'linear'
ZTick: [-1 0 1]
ZTickLabel: ''
ZTickLabelMode: 'auto'
ZTickLabelRotation: 0
ZTickMode: 'auto'
These settings can also be adjusted:
MyAxes. Color=[165/255 ,165/255 ,165/255 ];
If we change the color back to white and remove the box
MyAxes. Color=[255/255 ,255/255 ,255/255 ];
MyAxes. Box=0;
We can change the font, the font size and make it italic:
MyAxes. FontName='Calibri ' ;
MyAxes. FontSize=20;
MyAxes. FontAngle=' italic ' ;
We can change the Axes Locations:
MyAxes. XAxisLocation=' top ' ;
MyAxes. YAxisLocation=' right ' ;
We can change the Axes Limits to show a negative value and set the Axes Origins to be at the origin:
MyAxes. XAxisLocation='origin ' ;
MyAxes. YAxisLocation=' origin ' ;
MyAxes. XLim=[-30,30];
MyAxes. YLim=[-60,60];
We can change the width and color of the Axes:
MyAxes. LineWidth=2;
MyAxes. XColor=' m ';
MyAxes. YColor=' g ';
We can turn on the Major Grid:
MyAxes. XGrid=1;
MyAxes. YGrid=1;
We can change the transparency of the grid:
MyAxes. GridAlpha=1;
We can also have a Minor Grid:
MyAxes. XMinorGrid=1;
MyAxes. YMinorGrid=1;
MyAxes. MinorGridColor=' c ' ;
MyAxes. MinorGridLineStyle=' : ' ;
For the Axes we have:
MyAxes. XLabel
We can change the String using:
MyAxes. XLabel. String={ ' x ' } ;
MyAxes. YLabel. String={ ' y ' } ;
MyAxes. Title. String={ ' x vs y ' } ;
We can look at the Legend
MyAxes. Legend
Okay it says Graphic place holder. We can however type in:
legend( ' A ' ,' B ' )
MyAxes. Legend
If we click all properties we can see
Show More
AutoUpdate: 'on'
BeingDeleted: 'off'
Box : 'on'
BusyAction: 'queue'
ButtonDownFcn: @bdowncb
Children: [0×0 GraphicsPlaceholder]
Color : [1 1 1]
CreateFcn: ''
DeleteFcn: ''
EdgeColor: [0.1500 0.1500 0.1500]
FontAngle : 'italic'
FontName : 'Calibri'
FontSize : 18
FontWeight: 'normal'
HandleVisibility: 'on'
HitTest: 'on'
Interpreter: 'tex'
Interruptible: 'off'
ItemHitFcn: @defaultItemHitCallback
LineWidth: 2
Location : 'northeast'
NumColumns: 1
NumColumnsMode: 'auto'
Orientation: 'vertical'
Parent: [1×1 Figure]
PickableParts: 'visible'
Position : [0.7696 0.7163 0.1161 0.1536]
Selected: 'off'
SelectionHighlight: 'on'
String: {'A' 'B'}
Tag: 'legend'
TextColor: [0 0 0]
Title: [1×1 Text]
Type: 'legend'
UIContextMenu: [1×1 ContextMenu]
Units: 'normalized'
UserData: []
Visible: 'on'
This shows a legend in a very inconvenient place:
Now that we have the Legend we can use Dot Indexing to change it's properties:
MyAxes. Legend. Location=' SouthWest ' ;
MyAxes. Legend. Box=1;
MyAxes. Legend. Color=[1 ,1 ,0 ];
MyAxes. Legend. FontName=' Arial ' ;
MyAxes. Legend. FontAngle=' normal ' ;
MyAxes. Legend. FontSize=48;
Like this: Like Loading...