Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F60131471
PlotData.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Apr 27, 18:12
Size
2 KB
Mime Type
text/x-python
Expires
Mon, Apr 29, 18:12 (2 d)
Engine
blob
Format
Raw Data
Handle
17306053
Attached To
rNPTOOLS Nanopore Tools
PlotData.py
View Options
import
Functions
import
os
import
LoadData
import
matplotlib.pyplot
as
plt
import
matplotlib
import
numpy
as
np
from
scipy
import
signal
from
matplotlib.ticker
import
EngFormatter
from
ipywidgets
import
interact
import
numpy
as
np
from
bokeh.io
import
push_notebook
from
bokeh.plotting
import
figure
,
show
,
output_notebook
from
bokeh.models
import
FuncTickFormatter
,
NumeralTickFormatter
# Needed for plotting in jupyter
from
bokeh.resources
import
INLINE
import
bokeh.io
bokeh
.
io
.
output_notebook
(
INLINE
)
import
math
Amp
=
EngFormatter
(
unit
=
'A'
,
places
=
2
)
Time
=
EngFormatter
(
unit
=
's'
,
places
=
2
)
Volt
=
EngFormatter
(
unit
=
'V'
,
places
=
2
)
Cond
=
EngFormatter
(
unit
=
'S'
,
places
=
2
)
def
custom_formatterA
():
units
=
[(
'm'
,
1e-3
),
(
'µ'
,
1e-6
),
(
'n'
,
1e-9
),
(
'p'
,
1e-12
)]
if
tick
==
0
:
return
'0'
for
u
in
units
:
if
Math
.
abs
(
tick
)
>=
u
[
1
]:
return
'{0:.1f} {}A'
.
format
(
tick
/
u
[
1
],
u
[
0
])
#Note, Javascript Math
return
'{:.2E}'
.
format
(
tick
)
def
custom_formattersec
():
units
=
[
(
'µs'
,
1e6
),
(
'ms'
,
1e3
),
(
's'
,
1.0
),
(
'min'
,
1
/
60
),
(
'hour'
,
1
/
3600
),
]
for
u
in
units
:
if
tick
<=
100
/
u
[
1
]:
return
'{0:.1f}{}'
.
format
(
tick
*
u
[
1
],
u
[
0
])
def
SimpleTracePlot
(
filename
,
lowPass
=
10e3
):
loadedData
=
LoadData
.
OpenFile
(
filename
,
lowPass
,
True
)
#, ChimeraLowPass, True, CutTraces)
if
loadedData
[
'samplerate'
]
>
lowPass
:
output
=
Functions
.
LowPass
(
loadedData
[
'i1'
],
loadedData
[
'samplerate'
],
lowPass
)
FullTrace
=
output
[
'data'
]
samplerate
=
output
[
'samplerate'
]
else
:
FullTrace
=
loadedData
[
'i1'
]
samplerate
=
loadedData
[
'samplerate'
]
output_notebook
()
p
=
figure
(
plot_height
=
300
,
plot_width
=
900
,
tools
=
'pan,box_zoom,xwheel_zoom,reset,save'
,
active_scroll
=
'xwheel_zoom'
)
times
=
np
.
linspace
(
0
,
len
(
FullTrace
)
/
samplerate
,
num
=
len
(
FullTrace
))
p
.
line
(
times
,
FullTrace
)
p
.
xaxis
.
axis_label
=
'time (s)'
p
.
yaxis
.
axis_label
=
'current (A)'
p
.
yaxis
[
0
]
.
formatter
=
FuncTickFormatter
.
from_py_func
(
custom_formatterA
)
p
.
title
.
text
=
os
.
path
.
basename
(
filename
)
show
(
p
)
def
PlotPSD
(
inputdata
):
if
os
.
path
.
isfile
(
inputdata
):
filename
=
inputdata
loadedData
=
LoadData
.
OpenFile
(
filename
,
approxImpulseResponse
=
True
)
#, ChimeraLowPass, True, CutTraces)
else
:
filename
=
''
loadedData
=
inputdata
frequencies
,
P_den
=
Functions
.
GetPSD
(
loadedData
)
output_notebook
()
p
=
figure
(
plot_height
=
300
,
plot_width
=
900
,
y_axis_type
=
"log"
,
tools
=
'pan,box_zoom,xwheel_zoom,reset,save'
)
p
.
line
(
frequencies
,
P_den
*
1e24
)
p
.
xaxis
.
axis_label
=
'Frequencies (Hz)'
p
.
yaxis
.
axis_label
=
'PSD ($frac{pA^2}{Hz}$)'
p
.
title
.
text
=
'PSD :'
+
os
.
path
.
basename
(
filename
)
show
(
p
)
Event Timeline
Log In to Comment