Plot Basic tutorial
Tutorial |
Topic |
---|
Plot Workbench Basic Tutorial |
Level |
Beginner |
Time to complete |
Authors |
FreeCAD version |
Example files |
See also |
None |
In this tutorial we will learn how to create a basic plot using the Plot Workbench and the Python console.
Basic plot example
In the previous image you can see the result that we will approximately obtain. Following this tutorial you will learn:
- How to create a Plot from the Python console.
- How to plot some data from the Python console.
- How to show the grid lines.
- How to show the legend.
- How to edit series labels, introducing text in LaTeX.
- How to edit axes labels, introducing text in LaTeX.
- How to edit series styles.
- How to save your plot.
Plotting data
To plot data you don't need to create a FreeCAD document, simply open the Python console and start sending commands, or use macros.
Creating plot document
Plots are special documents that can be created manually in order to add data later, or the module can create one automatically when you start plotting data. Creating your own plot document has two advantages:
- You can set the document window label.
- You can control the document where you plot your data.
To create a new plot document simply launch the following commands:
try:
from FreeCAD.Plot import Plot
except ImportError:
from freecad.plot import Plot
Plot.figure("TrigonometricTest")
In FreeCAD 0.19 it is required to install the Plot Workbench with the Add-on manager, while from FreeCAD 0.20 onward the external add-on is no longer required to perform plots. The commands above will create a new tab in the Main view area called TrigonometricTest. The newly created document already has a set of axes. Each plot document has at least one set of axes that can be removed without fully using matplotlib control.
Drawing functions
You can also start working from here because, as already explained, the plot command will create a new document if required. But it is usually better to create a plot document first. The next thing we need to do is create the data for sine and cosine functions that we want to plot:
import math
t = range(0,101)
t = [tt/100.0 for tt in t]
s = [math.sin(2.0*math.pi*tt) for tt in t]
c = [math.cos(2.0*math.pi*tt) for tt in t]
That will create 3 arrays of data (with 101 points):
- t = Time in seconds.
- s = Sine function.
- c = Cosine function.
In order to plot both function we only need to launch the next commands:
Plot.plot(t,s)
Plot.plot(t,c)
That will plot our functions. The plot command allows the series label as an argument, but since we will edit it later using the Plot module tools we don't pass this data yet.
Configuring plot
Showing grid and legend
Change the FreeCAD workbench to the Plot module with View → Workbench → Plot (you must install the add-on first with the Add-on manager). When the module has been loaded, use the grid tool to show the grid.
Show/hide grid tool icon
You can repeat the action to hide the grid. Use the legend tool to show, or hide, the legend.
Show/hide legend tool icon
As you can see, the legend is empty because we have not set any series label yet. In the Plot module series without a label are not represented in the legend, in order to allow you to draw auxiliary lines.
Setting series labels
With the series tool you can edit some series parameters.
Series configuration tool icon
Select the line you want to edit, we will start with the first one. Uncheck No label and set this label:
$y = \sin \left( 2 \pi t \right)$
Since matplotlib supports LaTeX you can set all labels and titles using LaTeX. Set the following label for the second series:
$y = \cos \left( 2 \pi t \right)$
Setting series style
You can set many series properties. Try to set the properties shown in the example image, changing the colors and drawing style of the second series.
Setting axes labels
With the labels tool you can set labels for all created axes.
Labels tool icon
Set this data:
- Title = Trigonometric functions example
- X Label = $t$
- Y Label = $y = \mathrm{f} \left( t \right)$
Also change the size of all of them to 20.
Saving plot
With the save tool you can save your plot as an image file in several formats.
Save tool icon
First select the path of the output file in the file selection dialog.
Set the output image size in inches, for example use 11.7x8.3 to get a DIN A4 size. DPI (Dots per inch) will control the image resolution, for example use 100 dpi to get an image of 1170x830 pixels.
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Assembly, BIM, CAM, Draft, FEM, Inspection, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub