## New module in the Python app: matplotlib.pyplot

It is now possible to use some functions of the matplotlib.pyplot module in Python. In particular, this subset provides a tool for plotting curves, scatterplots and histograms.

• The functions available in the matplotlib.pyplot module are listed in the Modules section of the Toolbox menu: `arrow()`, `axis()`, `bar()`, `grid()`, `hist()`, `plot()`, `scatter()`, `show()`, `text()`.
• The figures are displayed with the instruction `show()`. To make the figure disappear and return to the shell, simply press the Back key.
• The figures can be scrolled using the arrow keys and zoomed using the + and - keys.
• An example script, parabola.py, has been added to the list of scripts. To draw the figure, run `simulation()`.

## Additional results in the Calculation application

It is possible to go up in the history to show additional information on the result of particular calculations, thanks to the menu made up of three dots.

• When the result is an integer, the calculator gives the following additional results: hexadecimal form, binary form and integer factorization where relevant.
• When the result is a fraction, the calculator gives the following additional results: mixed fraction and Euclidean division of the numerator by the denominator.
• When the result or the input is `sin(x)` or `cos(x)`, the calculator gives the following additional results: angle, value of the cosine and sine and a representation of the trigonometric circle.
• When the result is a complex number, the calculator gives the following additional results: absolute value, argument, real part, imaginary part and a representation in the complex plane.

## Units

The Calculation app is now ready to handle calculations with units.

• Units are prefixed by the character `_` and and named by their International System of Units symbol, e.g. `_m` for meters.
• A new section in the toolbox menu lists all the units that can be used.
• The result of a calculation with units is displayed with the most relevant unit. For example, the calculation `30_s+30_s` gives the result: `1_min`.
• It is also possible to perform conversions by using the sto key. For example, to convert 3 meters to centimeters, type: `3_m→_cm`.

## Enhancement of the Python application

Many improvements have been made to the Python application.

• It is now possible to copy/paste a selection defined by the user. To select part of a text, hold down shift and press the right or left arrow keys. Copy the selection by pressing shift and then copy. Paste the selection by pressing shift and then paste.
• It is possible to use a new module, `ion`, to read the state of the keyboard keys. The `keydown()` function of this module returns `True` if the key is pressed, and `False` if not.
• The font size used in the Python application can be set from the Settings application.
• The size of the Python script storage space has been multiplied by two and the size of the stack has been multiplied by four.
• The following functions have been added to the Toolbox menu catalog: `list.append(x)`, `list.clear()`, `list.count(x)`, `list.index(x)`, `list.insert(i,x)`, `list.pop(i)`, `list.remove(x)`, `list.reverse()` and `list.sort()`.

## Other improvements

• The Fisher distribution was added to the Probability application.
• Expressions of the form `y(x)` are now interpreted as multiplications when `y` has not been defined as a function.
• The Equation app displays a message when variables created by the user are interpreted as such or used as unknowns.
• The scrolling of the value tables has been speeded up.
• The models for the power and trigonometric regressions are now consistent with the models used in other mathematical softwares.
• Moving the cursor over a curve is speeded up if the left or right arrow key is held down for a long time.
• When the Exam Mode is active, the Exam Mode menu in the Settings app explains how to quit the Exam Mode.

## Special thanks

We would like to thank all the contributors who helped us release this update: Alexandre André, Adrien Bertrand, Jean-Baptiste Boric, Lionel Debroux, Joachim Le Fournis and Neven Sajko