I am trying to save a graph as a png file, 2/3 of them are saving the most up to date version.
However, the plot that isn't saving correctly does show the correct version IN the python file. I have tried deleting the png and it still resaves it as the older version. The locus plot at the botton is the one that isnt working.
what is wrong? Let me know if you need more information
import numpy as np
import math
import pandas
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'serif'
plt.rcParams["figure.figsize"] = (15,5)
plt.rcParams['figure.dpi'] = 200
plt.rcParams['savefig.dpi'] = 1200
'''extracting the data from the csv file'''
data = pandas.read_csv('Pilot data.csv')
np_data = data.to_numpy()
data_no = 27
R_e = 10 #the resistor added in series
phase = np.empty(data_no)
freq = np.empty(data_no)
amp_0 = np.empty(data_no)
amp_1 = np.empty(data_no)
for i in range(data_no): # getting the data into seperate arrays
for j in range(4):
if j == 0:
freq[i] = np_data[i][j]
if j == 1:
phase[i] = np_data[i][j]
if j == 2:
amp_0[i] = np_data[i][j]
if j == 3:
amp_1[i] = np_data[i][j]
'''working out the current and impeadance through the circut'''
current = amp_1 / 10
imp = amp_0 / current
'''finding the errors'''
def freq_err(freq_list):
f = np.full_like(freq_list, 0.005)
return f
v_err = 0.002441
phase_err = 0.1
current_err = v_err / 10
imp_err = np.sqrt(v_err**2 / amp_0**2 + current_err**2 / current**2)
real_err = np.sqrt((imp_err * np.cos(phase * np.pi / 180)) ** 2 + (phase_err * imp * np.cos(phase * np.pi / 180) * np.pi / 180 ) ** 2)
imag_err = np.sqrt((imp_err * np.sin(phase * np.pi / 180)) ** 2 + (phase_err * imp * np.sin(phase * np.pi / 180) * np.pi / 180 ) ** 2)
'''plot current vs freq zoomed out'''
plt.errorbar(freq, imp, xerr=freq_err(freq), yerr=imp_err, fmt='o')
plt.title('Impeadance Vs Frequency', size=17)
plt.ylabel('Impeadance (Ω)', size=12)
plt.xlabel('Frequency (Hz)', size=12)
plt.savefig(fname='Pilot data.png')
'''working out values for locus plot'''
z_e = imp * (np.cos(phase * np.pi / 180) + 1j * np.sin(phase * np.pi / 180))
real = z_e.real
imag = z_e.imag
'''plotting locus plot'''
plt.errorbar(real, imag, xerr=real_err, yerr=imag_err, fmt='o')
plt.title('Real Vs Imaginary components of the Impedanace', size=17, family='serif')
plt.ylabel('Real (Ω)', size=12)
plt.xlabel('Imaginary (Ω)', size=12)
plt.savefig(fname='Pilot data locus plot.png')