Updated plot names and tweaked alpha function.
This commit is contained in:
		
							parent
							
								
									669b144747
								
							
						
					
					
						commit
						ea8a3fb4c0
					
				
					 4 changed files with 24 additions and 20 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
# Figures directory
 | 
					# Figures directory
 | 
				
			||||||
figures*
 | 
					figures*
 | 
				
			||||||
 | 
					fromMat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Byte-compiled / optimized / DLL files
 | 
					# Byte-compiled / optimized / DLL files
 | 
				
			||||||
__pycache__/
 | 
					__pycache__/
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										30
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										30
									
								
								README.md
									
										
									
									
									
								
							| 
						 | 
					@ -1,35 +1,36 @@
 | 
				
			||||||
# What is this?
 | 
					# What is this?
 | 
				
			||||||
This whole tool is a basic front end for using Python's `matplotlib` in a
 | 
					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
 | 
					moderately interactive and robust manner to do MATLAB-like number crunching
 | 
				
			||||||
(more critically) plot generation for papers.
 | 
					and (more critically) plot generation for papers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## MATLAB Soapbox Explanation
 | 
					## MATLAB Soapbox Explanation
 | 
				
			||||||
While MATLAB has routines to save figures, the graphics back-end routinely runs
 | 
					While MATLAB has routines to save figures, the graphics back-end routinely
 | 
				
			||||||
into issues with NVIDIA GPU based systems, and I'm sick and tired of being tied
 | 
					runs into issues with NVIDIA GPU based systems, and I'm sick and tired of
 | 
				
			||||||
to a tool that has a heavy resource footprint and only moderate documentation.
 | 
					being tied to a tool that has a heavy resource footprint and only moderate
 | 
				
			||||||
The licensing restrictions (though not fundamentally debilitating) are a
 | 
					documentation. The licensing restrictions (though not fundamentally
 | 
				
			||||||
secondary reason I'm moving away from MATLAB. Finally, as I expect to graduate
 | 
					debilitating) are a secondary reason I'm moving away from MATLAB. Finally,
 | 
				
			||||||
soon, the $50 (or $130 for my toolboxes) annual cost is going to rise to a
 | 
					as I expect to graduate soon, the $50 (or $130 for my toolboxes) annual
 | 
				
			||||||
debilitating point for things as mundane as personal projects. So I might as
 | 
					cost is going to rise to a debilitating point for things as mundane as
 | 
				
			||||||
well kick an expensive habit while it's easy to fall back when needed.
 | 
					personal projects. So I might as well kick an expensive habit while it's
 | 
				
			||||||
 | 
					easy to fall back when needed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Resources
 | 
					# Resources
 | 
				
			||||||
There are a few tricks to help configuring `matplotlib`. I'll update this
 | 
					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
 | 
					document to describe the commands and tools to help decipher the
 | 
				
			||||||
required to produce plots in a repeatable and tidy way.
 | 
					information required to produce plots in a repeatable and tidy way.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 1. Plot Defaults
 | 
					## 1. Plot Defaults
 | 
				
			||||||
Plot defaults are managed by the `matplotlib`
 | 
					Plot defaults are managed by the `matplotlib`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 2. Font Selection
 | 
					## 2. Font Selection
 | 
				
			||||||
```python
 | 
					```python
 | 
				
			||||||
import `matplotlib`.font_manager
 | 
					import matplotlib.font_manager
 | 
				
			||||||
print(matplotlib.font_manager.fontManager.afmlist)
 | 
					print(matplotlib.font_manager.fontManager.afmlist)
 | 
				
			||||||
print(matplotlib.font_manager.fontManager.ttflist)
 | 
					print(matplotlib.font_manager.fontManager.ttflist)
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
I search for fonts using the following method:
 | 
					I search for fonts using the following method:
 | 
				
			||||||
```
 | 
					```python
 | 
				
			||||||
import matplotlib.font_manager as FM
 | 
					import matplotlib.font_manager as FM
 | 
				
			||||||
import re
 | 
					import re
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,7 +46,6 @@ fontsAvailable = set([FM.FontProperties(fname=fcFont).get_name()\
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[matplotlib docs](https://matplotlib.org/api/font_manager_api.html)
 | 
					[matplotlib docs](https://matplotlib.org/api/font_manager_api.html)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 3. 
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# TODO
 | 
					# TODO
 | 
				
			||||||
* make pySmithPlot a git sub-module
 | 
					* make pySmithPlot a git sub-module
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -100,11 +100,14 @@ class ampSystem:
 | 
				
			||||||
	@property
 | 
						@property
 | 
				
			||||||
	def alpha_swp(self):
 | 
						def alpha_swp(self):
 | 
				
			||||||
		range_partial = np.ceil(self.gamma_len/2)
 | 
							range_partial = np.ceil(self.gamma_len/2)
 | 
				
			||||||
		lhs = np.linspace(np.sqrt(self.alpha_min),1, range_partial)
 | 
							rhs = np.power(np.linspace(0,1,range_partial),2)*(self.alpha_min-1)+1
 | 
				
			||||||
		rhs = np.flip(lhs,0)
 | 
							lhs = np.flip(rhs,0)
 | 
				
			||||||
 | 
							#lhs = np.linspace(np.sqrt(self.alpha_min),1, range_partial)
 | 
				
			||||||
 | 
							#rhs = np.flip(lhs,0)
 | 
				
			||||||
		swp = np.concatenate((lhs,rhs[1:])) if np.mod(self.gamma_len,2) == 1 \
 | 
							swp = np.concatenate((lhs,rhs[1:])) if np.mod(self.gamma_len,2) == 1 \
 | 
				
			||||||
												else np.concatenate((lhs,rhs))
 | 
																	else np.concatenate((lhs,rhs))
 | 
				
			||||||
		return np.power(swp,2)
 | 
							#return np.power(swp,2)
 | 
				
			||||||
 | 
							return swp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	def set_gamma_swp(self, gamma_swp_function):
 | 
						def set_gamma_swp(self, gamma_swp_function):
 | 
				
			||||||
		self._gamma_map_function = gamma_swp_function
 | 
							self._gamma_map_function = gamma_swp_function
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -179,9 +179,9 @@ if 1 in plot_list or 11 in plot_list:
 | 
				
			||||||
	ax1[0].plot(f.hz,dB20(tf))
 | 
						ax1[0].plot(f.hz,dB20(tf))
 | 
				
			||||||
	ax1[1].plot(f.hz,ang_unwrap(tf))
 | 
						ax1[1].plot(f.hz,ang_unwrap(tf))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ax1[0].set_title('TF Gain')
 | 
						ax1[0].set_title('Stage Gain Response')
 | 
				
			||||||
	ax1[0].set_ylabel('Gain (dB)')
 | 
						ax1[0].set_ylabel('Gain (dB)')
 | 
				
			||||||
	ax1[1].set_title('TF Phase')
 | 
						ax1[1].set_title('Stage Phase Response')
 | 
				
			||||||
	ax1[1].set_ylabel('Phase (deg)')
 | 
						ax1[1].set_ylabel('Phase (deg)')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for axT in ax1:
 | 
						for axT in ax1:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue