No description
Find a file
2019-10-27 13:03:26 -07:00
pySmithPlot Inital comit. 2018-07-17 18:33:39 -07:00
.gitignore Updated git-ignore to not include my data. 2019-08-18 12:56:42 -07:00
cadenceResults.py Added support to plot measurement data 2018-07-30 19:01:37 -07:00
comparisonPlots.py Random updates 2019-07-27 16:27:58 -07:00
FreqClass.py Major refactor to ease duplicate computations and plotting 2018-07-20 19:07:01 -07:00
LPRDefaultPlotting.py Misc final updates for publication. 2019-10-19 17:32:56 -07:00
parsePy.py path fixing 2019-10-27 13:03:26 -07:00
parsePy_forceFormat.py Misc final updates for publication. 2019-10-19 17:32:56 -07:00
README.md Updated plot names and tweaked alpha function. 2018-07-24 18:06:24 -07:00
rev_simplot.py Random updates for paper revisions. Getting janky! 2019-08-18 12:56:05 -07:00
rev_simplot_stab.py Random updates for paper revisions. Getting janky! 2019-08-18 12:56:05 -07:00
rev_stabplot.py Random updates for paper revisions. Getting janky! 2019-08-18 12:56:05 -07:00
runAll.sh Random updates for paper revisions. Getting janky! 2019-08-18 12:56:05 -07:00
runParse.sh Random updates for paper revisions. Getting janky! 2019-08-18 12:56:05 -07:00
runParse_forced.sh Misc final updates for publication. 2019-10-19 17:32:56 -07:00
runSome.sh Random updates for paper revisions. Getting janky! 2019-08-18 12:56:05 -07:00
tankComputers.py Random updates 2019-07-27 16:27:58 -07:00
TankGlobals.py Misc final updates for publication. 2019-10-19 17:32:56 -07:00
tankPlot.py Random TCAS2 edits. 2019-09-26 14:05:55 -07:00
tankPlot_v1.py Mark stable point of tank plotting with hard gain limit 2018-07-19 10:20:10 -07:00

What is this?

This whole tool is a basic front end for using Python's matplotlib in a moderately interactive and robust manner to do MATLAB-like number crunching and (more critically) plot generation for papers.

MATLAB Soapbox Explanation

While MATLAB has routines to save figures, the graphics back-end routinely runs into issues with NVIDIA GPU based systems, and I'm sick and tired of being tied to a tool that has a heavy resource footprint and only moderate documentation. The licensing restrictions (though not fundamentally debilitating) are a secondary reason I'm moving away from MATLAB. Finally, as I expect to graduate soon, the $50 (or $130 for my toolboxes) annual cost is going to rise to a debilitating point for things as mundane as personal projects. So I might as well kick an expensive habit while it's easy to fall back when needed.

Resources

There are a few tricks to help configuring matplotlib. I'll update this document to describe the commands and tools to help decipher the information required to produce plots in a repeatable and tidy way.

1. Plot Defaults

Plot defaults are managed by the matplotlib

2. Font Selection

import matplotlib.font_manager
print(matplotlib.font_manager.fontManager.afmlist)
print(matplotlib.font_manager.fontManager.ttflist)

I search for fonts using the following method:

import matplotlib.font_manager as FM
import re

fcFontList = FM.get_fontconfig_fonts()
# Search only for fonts that have name matches similar to this
fontsDesired = ['Helvetica', 'Times', 'Arial']
fontsDesiredRe = re.compile('|'.join(fontsDesired), flags=re.IGNORECASE)
# Create a unique set of the fonts selected out of all of the system fonts
fontsAvailable = set([FM.FontProperties(fname=fcFont).get_name()\
	for fcFont in fcFontList if fontsDesiredRe.search(fcFont) != None])

matplotlib docs

TODO

  • make pySmithPlot a git sub-module
  • think of a smarter way to refactor things (this is an ever evolving goal)