FreeCAD Logo FreeCAD 1.0
  • English Afrikaans Arabic Belarusian Catalan Czech German Greek Spanish Spanish Basque Finnish Filipino French Galician Croatian Hungarian Indonesian Italian Japanese Kabyle Korean Lithuanian Dutch Norwegian Bokmal Polish Portuguese Portuguese Romanian Russian Slovak Slovenian Serbian Swedish Turkish Ukrainian Valencian Vietnamese Chinese Chinese
  • Features
  • Download
  • Blog
  • Documentation
    Documentation index Getting started Users documentation The FreeCAD manual Workbenches documentation Python coding documentation C++ coding documentation Tutorials Frequently asked questions Privacy policy About FreeCAD
  • Contribute
    How to help Sponsor Report a bug Make a pull request Jobs and funding Contribution guidelines Developers handbook Translations
  • Community
    Code of conduct Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendar
  • ♥ Donate

Donate

$
SEPA Information
Please set up your SEPA bank transfer to:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Bank agency: BNP Paribas Fortis
Address: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!


TutorialInfo: Topic: Plot workbench Level: Intermediate Time: Author: FCVersion: 0.19 Files:

Plot MultiAxes tutorial

Please complete the basic tutorial before starting with this tutorial. In this tutorial we will learn how to create and edit a multiaxes plot. You can learn more about the Plot Workbench here.

*Multiaxes plot example*

In the image you can see the result that we will approximately obtain. Following this tutorial you will learn:

  • How to create a multiaxes Plot from the Python console.
  • How to edit axes properties.
  • How to control the grid and the legend when several axes sets are present.
  • How to edit the position of labels, titles and legends.

Plotting data

As we did in the previous tutorial we will use the Python console or macros to plot the data, but in this case we will plot the data using two axes sets.

Creating plot data

In this example we will plot 3 functions, the two used in the previous tutorial, and a new polynomial one. The range of the polynomial function is different from the other functions therefore new axes are required. The next commands will create the data arrays for us:

import math
p = range(0,1001)
x = [2.0*xx/1000.0 for xx in p]
y = [xx**2.0 for xx in x]
t = [tt/1000.0 for tt in p]
s = [math.sin(math.pi*2.0*tt) for tt in t]
c = [math.cos(math.pi*2.0*tt) for tt in t]

As x moves from 0 to 2, the y function has a maximum value of 4, so if we try to plot this function with the trigonometrical ones, at least one function will be truncated or badly scaled, therefore we we need a multiaxes plot. A multiaxes plot in FreeCAD is intended to get a plot with multiple axes, not to get multiple plots in the same document.

Drawing functions, adding new axes

We will plot the trigonometrical functions using the main axes. If all your axes have the same size it is not relevant which function is plotted first. But if this is not the case the function that uses the biggest axes, in our case the polynomial function, should be plotted last. The legend will be attached to the last axes system and it is more convenient if this is the biggest. To plot the trigonometrical functions we only need to launch some commands.

try:
    from FreeCAD.Plot import Plot
except ImportError:
    from freecad.plot import Plot

Plot.plot(t,s,r"$\sin\left( 2 \pi t \right)$")
Plot.plot(t,c,r"$\cos\left( 2 \pi t \right)$")

In this example we pass the series labels for the legend directly. Note that the label strings have the r prefix in order to prevent Python from trying to interpret special characters (the \ symbol is used frequently in LaTeX syntax).

Before we can plot the polynomial function, we need to create new axes. In the Plot Workbench new axes are automatically selected as the active ones, and new plots will be associated with these axes.

Plot.addNewAxes()
Plot.plot(x,y,r"$x^2$")

As you can see your plot has gone crazy, with axes ticks overlapping, curves of the same color, etc. Now we need to use the Plot Workbench to fix this graph.

Configuring plot

Configuring axes

The Plot Workbench provides a tool to modify the properties of axes.


Axes configuration tool icon

With the axes tool you can add or remove axes, and set the active axes, which are then used if you plot more data.

To change the size of the first axes set, associated with the trigonometrical functions, it has to be activated first by changing the active axes from 1 to 0. We can then move the horizontal and vertical dimension sliders to reduce its size (try to emulate the example). We also need to change the alignment of the axes: select top and right respectively.

Configuring series

Set the series properties as we did in the previous tutorial.

Showing grid and legend

The grid and legend can be shown, and hidden, with the tools already described in the previous tutorial, but in this case the behavior is a little different because there are two axes sets.

Grid lines are added to the active axes set. To add lines to the second axes set in our example, it has to be activated first by changing the active axes from 0 to 1 in the axes tool.

As already mentioned the legend will be positioned relative last axes set. If you show the legend now you will see that it is really badly placed, but we will fix that later.

Setting axes labels

When it comes to setting the axes labels we again have to deal with our two axes sets. But since labels are usually set for all axes, the procedure is the same as described in the previous tutorial. The Plot Workbench allows you to set a title per axes set. In this case we only want to set a title for the last, the biggest, axes set.

Axes 0:

  • X Label = \$t\$
  • Y Label = \$\mathrm{f} \left( t \right)\$

Axes 1:

  • Title = Multiaxes example
  • X Label = \$x\$
  • Y Label = \$\mathrm{f} \left( x \right)\$

Change the font size of all labels to 20, and the font size of the title to 24. Again there is an element, the title, that is badly placed.

Setting elements position

The Plot Workbench provides a tool to change the position of several plot elements, such as as titles, labels and legends.


Position editor icon

When you run the tool you will see a list of all editable elements. Titles and legends can be moved in both directions, but axis labels can only be moved along the axis they belong to. Select the title of axes 1 and move it to (0.24,1.01), then select the legend and move it to a better position. You can increase the font size of the legend labels as well.

Saving plot

Now you can save your work. See the previous tutorial if you don\'t remember how to do it.

{{Plot_Tools_navi}}


⏵ documentation index > External_Workbenches > Addons > Plot > Plot MultiAxes tutorial

This page is retrieved from https://github.com/FreeCAD/FreeCAD-documentation/blob/main/wiki/Plot_MultiAxes_tutorial.md

Get in touch!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© The FreeCAD Team. Homepage image credits (top to bottom): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

This project is supported by: , KiCad Services Corp. and other sponsors

GitHubImprove this page on GitHub