Tips and Tricks for Figures and Graphics in BSc EE Reporting
Introduction¶
A picture is worth a thousand words, and high-quality visuals can convey even more. For high-quality visuals in your intermediate reports, apply the same guidelines as in the general reporting section but refined and extended for enhanced writing. It is, therefore, good to revisit the reporting guidelines and review any feedback received.
General Tips for Figures and Graphics¶
Important aspects of figure quality include:
Matching Font Size: Ensure the font size in figures is matching that of the surrounding text.
Good Contrast: Maintain good contrast for readability.
Appropriate Line Thickness and Styles: Use appropriate line thickness and styles for clarity.
Optimized Size: Optimize the size of figures relative to the information shown.
Vector Graphics Preferred: Use vector graphics over bitmap graphics. SVG is a common vector graphics format, but some tools may have issues with SVG files. PDF exports often work well with LaTeX/Overleaf.
High Resolution for Bitmap Graphics: If bitmap graphics are necessary, ensure high resolution. Avoid JPG encoding for images with line drawings and geometric shapes; use PNG or WEBP instead.
Recommended Tools for Creating Visuals¶
You are free to use tools you already know for creating visuals. However, here are some suggestions:
draw.io — An online drawing tool that is flexible and easy to learn. Check out the electrical engineering templates and the ‘Electrical’ section of ‘More Shapes’.
Mermaid — A JavaScript-based diagramming and charting tool that renders Markdown-inspired text definitions to create diagrams dynamically. Useful for gantt charts, block diagrames, mind maps, and many more types of diagrams. A command line tool for running locally on your laptop is available.
Inkscape — A professional, open-source vector image drawing tool. It has a steeper learning curve but offers finer control over the end result. Inkscape can export to SVG and PDF formats.
Python Matplotlib — The recommended tool for high-quality data graphs.
WaveDrom — Draws timing diagrams and circuit diagrams from simple textual descriptions. There is a Python version (
wavedrompy, PyPI package) that generates SVG files suitable for reports. Mostly targeted at digital circuits.Graphviz — An open-source graph visualization software useful for representing structural information as diagrams.
Python Schemdraw — A Python package for producing high-quality electrical circuit schematic diagrams.
Schematics¶
Schematics can be taken from LTspice, see Creating Schematic and Waveform Figures.
Publication quality schematics can be created using Inkscape and this symbol library. Used for the schematics in this manual.
You could also use most any drawing programme, and also drawing tools in powerpoint and other presentation tools
Don’t forget Guidelines for Drawing Schematics
Waveforms¶
LTspice waveform output can be exported for graphing using Python Matplotlib, see Creating Schematic and Waveform Figures and this google colab notebook
Advanced: you can use the LTSpice data parsing library for python
Code Listings¶
Code listings are important visuals in technical reports. Consider the following:
Include only relevant code excerpts in the report; place longer code in an appendix if necessary
Refer to an online source, e.g. your GitLab project repository for complete code listings and/or place them in an appendix
Discuss interesting and important parts of your code in the main body of your report
Use syntax highlighting and line numbers for clarity
Ensure the code font size and style match the surrounding text
For showing listings in LaTeX/Overleaf:
Use the
listingspackage in LaTeX for nice code listings.Note that the listing shows Python keywords in bold and comments in italic with line numbers enabled. The
listingspackage has many features, including the ability to pull code listings from a file and to select parts of that file only. For more on code listings, refer to the Overleaf Code Listing Guide. The official manual of thelistingspackage can be found at CTAN listings package.
Example Python code:
1 2 3 4 5 6 7 8 9 10import matplotlib.pyplot as plt # Example plot x = range(10) y = [x_**2 for x_ in x] plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('Example Plot') plt.show()
Conclusion¶
For effective and professional-looking reports in your intermediate reports and final project submission, it is essential to use high-quality visuals and follow the guidelines provided. Utilize the recommended tools and ensure all graphics are well-integrated and enhance the readability of your report.
Learning More
For deeper exploration of creating high-quality figures and graphics:
Guidelines for Drawing Schematics — Detailed conventions and best practices for creating professional electrical schematics
Matplotlib Official Documentation — Comprehensive guide to creating publication-quality data visualizations
Inkscape Tutorials — Official tutorials for vector graphics design
draw.io User Guide — Documentation and tutorials for the draw.io online drawing tool
Python Matplotlib User Guide — Step-by-step guide to creating figures and plots with Matplotlib
Your circuit theory textbook — Many textbooks include excellent examples of high-quality figures and schematics