Skip to content
Snippets Groups Projects
Commit 10449c07 authored by Alexandros Asonitis's avatar Alexandros Asonitis
Browse files

backend destroys everything in the plots

parent 9527bb05
No related branches found
No related tags found
No related merge requests found
from interface import *
import control
import matplotlib.pyplot as plt
from help import *
import time
from IPython.display import clear_output
......@@ -8,6 +7,7 @@ import numpy as np
import datetime
import pandas as pd
import matplotlib.pyplot as plt
#connect to device
device = control.hp4194()
......@@ -27,8 +27,6 @@ display(hbox1)
hbox2=widgets.HBox([messparameter,sweep_parameter])
display(hbox2,out)
#add widgets to a list for disabling them
all_widgets = [measure]
add_widgets_to_list(sample_dict,all_widgets)
......@@ -68,7 +66,7 @@ def on_measure_clicked(b):
device.set_parameter('set_delay_apperture',sweep_parameter_dict['d_apperture'].value)
device.set_parameter('aver_num',sweep_parameter_dict['averaging'].value)
device.write((sweep_parameter_dict["integration"].value).lower()) # Set integration number
# Now that we have set the frequency values ask user for calibration
answer = ask_for_calibration()
if answer == True : #perform an open calibration
......@@ -115,10 +113,8 @@ def on_measure_clicked(b):
# frequency index
f_index = messparameter_dict['f_point'].value-1
# create the figure
fig = plt.figure(layout = "constrained")
fig = plt.figure(figsize=(15,9),layout = "constrained")
spec = fig.add_gridspec(ncols=3, nrows=2)
ax1 = fig.add_subplot(spec[0,0])
......@@ -161,8 +157,8 @@ def on_measure_clicked(b):
ax6.set_ylabel("Cp (F)")
ax6_twin.set_ylabel("D")
mng = plt.get_current_fig_manager()
mng.window.state('zoomed')
figManager = plt.get_current_fig_manager()
figManager.window.state('zoomed')
for bias in biases:
view["v-value"].value = str(bias)
......@@ -284,7 +280,7 @@ def on_measure_clicked(b):
ax6_twin.scatter(freq,D, color = 'y')
ax6_twin.tick_params(axis='y',labelcolor = 'y')
fig.draw()
plt.pause(0.1)
if messparameter_dict["hysterisis"].value == True:
reversed_biases = reversed_array(biases)
for bias in reversed_biases:
......@@ -351,64 +347,64 @@ def on_measure_clicked(b):
G_area_omega= G/area/omega
G_area_omega_values.extend(G_area_omega)
# do the plots
# first the live ones
#clear the live axes
ax1.clear()
ax1_twin.clear()
ax2.clear()
ax2_twin.clear()
ax3.clear()
# frequency Cp/D plot
ax1.plot(freq,Cp,color = 'b')
ax1.tick_params(axis = 'y',labelcolor = 'b')
ax1_twin.plot(freq,D, color = 'y')
ax1_twin.tick_params(axis='y',labelcolor = 'y')
# frequecy Z-phi
ax2.plot(freq,Z,color = 'b')
ax2.tick_params(axis = 'y',labelcolor = 'b')
ax2_twin.plot(freq,phi, color = 'y')
ax2_twin.tick_params(axis='y',labelcolor = 'y')
# Rez - Imz
ax3.plot(ReZ,ImZ,color = 'b')
ax3.tick_params(axis = 'y',labelcolor = 'b')
# do the plots
# first the live ones
# now the rest of the plots
# Voltage vs Cp D for the user specified frequency
# This is updated for every iteration
ax4.scatter(bias, Cp[f_index],color ='b')
ax4.tick_params(axis = 'y',labelcolor = 'b')
ax4_twin.scatter(bias, D[f_index],color ='y')
ax4_twin.tick_params(axis = 'y',labelcolor = 'y')
#clear the live axes
ax1.clear()
ax1_twin.clear()
ax2.clear()
ax2_twin.clear()
ax3.clear()
# frequency Cp/D plot
ax1.plot(freq,Cp,color = 'b')
ax1.tick_params(axis = 'y',labelcolor = 'b')
ax1_twin.plot(freq,D, color = 'y')
ax1_twin.tick_params(axis='y',labelcolor = 'y')
# frequecy Z-phi
ax2.plot(freq,Z,color = 'b')
ax2.tick_params(axis = 'y',labelcolor = 'b')
ax2_twin.plot(freq,phi, color = 'y')
ax2_twin.tick_params(axis='y',labelcolor = 'y')
# Rez - Imz
ax3.plot(ReZ,ImZ,color = 'b')
ax3.tick_params(axis = 'y',labelcolor = 'b')
# Voltage, Z-phi
# This is also updated every iteration
ax5.scatter(bias, Z[f_index],color ='b')
ax4.tick_params(axis = 'y',labelcolor = 'b')
ax5_twin.scatter(bias, phi[f_index],color ='y')
ax5_twin.tick_params(axis = 'y',labelcolor = 'y')
# Final Plot
# This if for all the frequencies for the calculated voltage
if biases[v_index]== bias:
ax6.scatter(freq,Cp,color = 'g')
ax6.tick_params(axis = 'y',labelcolor = 'g')
ax6_twin.scatter(freq,D, color = 'r')
ax6_twin.tick_params(axis='y',labelcolor = 'r')
fig.draw()
# now the rest of the plots
# Voltage vs Cp D for the user specified frequency
# This is updated for every iteration
ax4.scatter(bias, Cp[f_index],color ='b')
ax4.tick_params(axis = 'y',labelcolor = 'b')
ax4_twin.scatter(bias, D[f_index],color ='y')
ax4_twin.tick_params(axis = 'y',labelcolor = 'y')
# Voltage, Z-phi
# This is also updated every iteration
ax5.scatter(bias, Z[f_index],color ='b')
ax4.tick_params(axis = 'y',labelcolor = 'b')
ax5_twin.scatter(bias, phi[f_index],color ='y')
ax5_twin.tick_params(axis = 'y',labelcolor = 'y')
# Final Plot
# This if for all the frequencies for the calculated voltage
if biases[v_index]== bias:
ax6.scatter(freq,Cp,color = 'g')
ax6.tick_params(axis = 'y',labelcolor = 'g')
ax6_twin.scatter(freq,D, color = 'r')
ax6_twin.tick_params(axis='y',labelcolor = 'r')
plt.pause(0.1)
fig.show()
plt.show()
device.write('bias_off')
# save to file
......
%% Cell type:code id:912606ea-a3b6-43e8-94c5-8f1fe5281375 tags:
``` python
%matplotlib tk
%run cv.py
```
%% Output
%% Cell type:code id:4f6be5c3-0ab8-4f18-88f6-02ce464a99f7 tags:
``` python
```
......
%% Cell type:code id:52e7274d-b638-4da1-acca-94cfc0c86c5a tags:
``` python
%matplotlib tk
%matplotlib qt
```
%% Cell type:code id:0a1db92b-e4d3-49f4-a95f-40d58e575404 tags:
``` python
import matplotlib.pyplot as plt
# create the figure
fig = plt.figure(layout = "constrained")
spec = fig.add_gridspec(ncols=3, nrows=2)
ax1 = fig.add_subplot(spec[0,0])
ax1_twin = ax1.twinx()
ax1.set_title("Cp/D(f) live")
ax1.set_xlabel("Frequency (Hz)")
ax1.set_ylabel("Cp (F)")
ax1_twin.set_ylabel("D")
ax2 = fig.add_subplot(spec[0,1])
ax2_twin = ax2.twinx()
ax2.set_title("Z/Phi(f) live")
ax2.set_xlabel("Frequency (Hz)")
ax2.set_ylabel("Z (Ohm)")
ax2_twin.set_ylabel("Phi (°)")
ax3 = fig.add_subplot(spec[0,2])
ax3.set_title("ImZ(ReZ(f)) live")
ax3.set_xlabel("Re Z (Ohm)")
ax3.set_ylabel("Im Z (Ohm)")
ax4 = fig.add_subplot(spec[1,0])
ax4_twin = ax4.twinx()
ax4.set_title("Cp/D(U)")
ax4.set_xlabel("Voltage U (V)")
ax4.set_ylabel("Cp (F)")
ax4_twin.set_ylabel("D")
ax5 = fig.add_subplot(spec[1,1])
ax5_twin = ax5.twinx()
ax5.set_title("Z/Phi(U)")
ax5.set_xlabel("Voltage U (V)")
ax5.set_ylabel("Z (Ohm)")
ax5_twin.set_ylabel("Phi (°)")
ax6 = fig.add_subplot(spec[1,2])
ax6_twin = ax6.twinx()
ax6.set_title("Cp/D(f)")
ax6.set_xlabel("Frequency (Hz)")
ax6.set_ylabel("Cp (F)")
ax6_twin.set_ylabel("D")
mng = plt.get_current_fig_manager()
mng.window.state('zoomed')
fig.show()
```
%% Cell type:code id:ff74d7a2-3426-433a-8152-43083bda500a tags:
``` python
```
......
......@@ -18,10 +18,8 @@ def change_state(widgets_list):
def ask_for_calibration():
root = tk.Tk()
root.withdraw()
root.lift() #show window above all other applications
root.attributes("-topmost", True)#window stays above all other applications
root.attributes("-topmost",True)
root.update()
answer=tk.messagebox.askyesno(message='Do you want to calibarate?')
root.destroy()
......
......@@ -138,7 +138,6 @@ def control_panel():
control_panel[3,0] = widgets.Label("Actual Voltage",layout=Layout(height='auto', width = width))
control_panel[4,0] = widgets.Text(disabled = True,layout=Layout(height='auto', width = width))
control_panel[4,1] = widgets.Checkbox(description = 'Clear Graphs',value = True,indent = False,layout=Layout(height='auto', width = width))
measure = control_panel[0,:]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment