Introduction
In this lab, you will learn how to use the multiprocessing library and Matplotlib to plot data generated from a separate process. We will create two classes - ProcessPlotter
and NBPlot
- to handle the plotting and data generation, respectively. The NBPlot
class will generate random data and send it to the ProcessPlotter
class through a pipe, which will then plot the data in real-time.
VM Tips
After the VM startup is done, click the top left corner to switch to the Notebook tab to access Jupyter Notebook for practice.
Sometimes, you may need to wait a few seconds for Jupyter Notebook to finish loading. The validation of operations cannot be automated because of limitations in Jupyter Notebook.
If you face issues during learning, feel free to ask Labby. Provide feedback after the session, and we will promptly resolve the problem for you.
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
matplotlib(("`Matplotlib`")) -.-> matplotlib/BasicConceptsGroup(["`Basic Concepts`"])
matplotlib(("`Matplotlib`")) -.-> matplotlib/PlottingDataGroup(["`Plotting Data`"])
matplotlib(("`Matplotlib`")) -.-> matplotlib/AdvancedTopicsGroup(["`Advanced Topics`"])
python(("`Python`")) -.-> python/BasicConceptsGroup(["`Basic Concepts`"])
python(("`Python`")) -.-> python/ControlFlowGroup(["`Control Flow`"])
python(("`Python`")) -.-> python/DataStructuresGroup(["`Data Structures`"])
python(("`Python`")) -.-> python/FunctionsGroup(["`Functions`"])
python(("`Python`")) -.-> python/ModulesandPackagesGroup(["`Modules and Packages`"])
python(("`Python`")) -.-> python/ObjectOrientedProgrammingGroup(["`Object-Oriented Programming`"])
python(("`Python`")) -.-> python/AdvancedTopicsGroup(["`Advanced Topics`"])
python(("`Python`")) -.-> python/PythonStandardLibraryGroup(["`Python Standard Library`"])
python(("`Python`")) -.-> python/DataScienceandMachineLearningGroup(["`Data Science and Machine Learning`"])
matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("`Importing Matplotlib`")
matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("`Understanding Figures and Axes`")
matplotlib/PlottingDataGroup -.-> matplotlib/line_plots("`Line Plots`")
matplotlib/AdvancedTopicsGroup -.-> matplotlib/custom_backends("`Custom Backends`")
python/BasicConceptsGroup -.-> python/booleans("`Booleans`")
python/ControlFlowGroup -.-> python/conditional_statements("`Conditional Statements`")
python/ControlFlowGroup -.-> python/for_loops("`For Loops`")
python/ControlFlowGroup -.-> python/while_loops("`While Loops`")
python/DataStructuresGroup -.-> python/lists("`Lists`")
python/DataStructuresGroup -.-> python/tuples("`Tuples`")
python/FunctionsGroup -.-> python/function_definition("`Function Definition`")
python/FunctionsGroup -.-> python/default_arguments("`Default Arguments`")
python/ModulesandPackagesGroup -.-> python/importing_modules("`Importing Modules`")
python/ModulesandPackagesGroup -.-> python/standard_libraries("`Common Standard Libraries`")
python/ObjectOrientedProgrammingGroup -.-> python/classes_objects("`Classes and Objects`")
python/ObjectOrientedProgrammingGroup -.-> python/constructor("`Constructor`")
python/ObjectOrientedProgrammingGroup -.-> python/polymorphism("`Polymorphism`")
python/ObjectOrientedProgrammingGroup -.-> python/encapsulation("`Encapsulation`")
python/AdvancedTopicsGroup -.-> python/threading_multiprocessing("`Multithreading and Multiprocessing`")
python/PythonStandardLibraryGroup -.-> python/math_random("`Math and Random`")
python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("`Numerical Computing`")
python/DataScienceandMachineLearningGroup -.-> python/data_visualization("`Data Visualization`")
python/FunctionsGroup -.-> python/build_in_functions("`Build-in Functions`")
subgraph Lab Skills
matplotlib/importing_matplotlib -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
matplotlib/figures_axes -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
matplotlib/line_plots -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
matplotlib/custom_backends -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/booleans -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/conditional_statements -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/for_loops -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/while_loops -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/lists -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/tuples -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/function_definition -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/default_arguments -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/importing_modules -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/standard_libraries -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/classes_objects -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/constructor -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/polymorphism -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/encapsulation -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/threading_multiprocessing -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/math_random -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/numerical_computing -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/data_visualization -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
python/build_in_functions -.-> lab-48844{{"`Multiprocessing with Matplotlib`"}}
end