Scientific project tutorial
Available only in PyCharm Professional: download to try or compare editions
Scientific mode is enabled by default in PyCharm 2024.1 and later versions.
In this tutorial, you will create a project to run and debug Python code with data visualization.
Before you start, make sure that conda is installed.
Open the New Project wizard (File | New | Project).
Choose a Pure Python project type.
In the project settings dialog window, specify a project name, ensure that conda is selected as the new environment and click Create.
Add a new Python file named main.py by right-clicking the project root and selecting New | Python File.
Open the main.py file and add the following code sample:
import numpy as np import matplotlib.pyplot as plt N = 50 x = np.random.rand(N) y = np.random.rand(N) colors = np.random.rand(N) area = np.pi * (15 * np.random.rand(N))**2 # 0 to 15 point radii plt.scatter(x, y, s=area, c=colors, alpha=0.5) plt.show() X = np.linspace(-np.pi, np.pi, 256,endpoint=True) C,S = np.cos(X), np.sin(X) plt.plot(X, C, color="blue", linewidth=2.5, linestyle="-") plt.plot(X, S, color="red", linewidth=2.5, linestyle="-") plt.xlim(X.min()*1.1, X.max()*1.1) plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$']) plt.ylim(C.min()*1.1,C.max()*1.1) plt.yticks([-1, 0, +1], [r'$-1$', r'$0$', r'$+1$']) plt.show()
Process warnings shown for the
numpy
andmatplotlib
imports and enable the packages in the project.
Run your project. The code is executed and shows two graphs in the Plots tool window. Clicking the preview thumbnail displays the respective graph:
To plot only one graph at a time, modify the project code by dividing it into code cells. This allows you to execute specific sections of your code independently.
Modify the main.py file by adding the "#%%" lines.
Code Snippet
{...}In the gutter, click the icon on the lines with imports and variables so that all the names would be recognized for the following steps.
Click the icon on the line with the scatter plot cell mark. Only the scatter graph will be built.
Now click the icon on the line with the y versus x plot cell mark. The corresponding graph should appear.
note
The Run button allows you to execute a cell without moving the caret.
Press Shift + Enter to run a cell and move the caret to the next one.
Let's put a breakpoint at the line:
plt.show()
This line appears twice in our example code, and so there will be two breakpoints.
Right-click the editor background and from the context menu choose Debug <project_name>.
You see the Debug tool window and the grey characters in the editor. This is the result of the inline debugging, which is enabled.
The line with the first breakpoint is highlighted. It means that the debugger has stopped at the line with the breakpoint but has not yet executed it. If we execute this line (for example, by clicking the Step Over on the stepping toolbar of the Debug tool window), we'll see the graph:
Next, look at the Variables tab of the Debug tool window. If you click the View as Array link next to the area
array, the Data View tool window opens:
When you process excessive amount of data, you might experience degradation of debugging performance if the debugger loads variable's values synchronously or asynchronously. It is recommended to switch to the On demand mode by selecting the corresponding loading policy. See Managing Variables Loading Policy for more information.
Mind the only column in the table — it is explained by the fact that the area
array is one-dimensional.
Right-click the editor background and choose the Run File in Python Console command.
This command corresponds to running a run/debug configuration for the main.py file with the Run with Python console option selected:
When this command is run, the >>>
prompt appears after the output in the Run tool window, and you can execute your own commands.
So, what has been done with the help of PyCharm?
The file main.py was created and opened for editing.
The source code has been entered (note the powerful PyCharm's code completion!)
The source code has been run and debugged.
Finally, we ran the file in console.
Thanks for your feedback!