Skip to content

Commit 5bf7e64

Browse files
committedOct 29, 2019
inlcude export figure window for exporting images
1 parent 73f2011 commit 5bf7e64

File tree

2 files changed

+217
-7
lines changed

2 files changed

+217
-7
lines changed
 

‎PythonGUI_apps/Spectrum_analysis/Spectra_plot_fit.py

+61-7
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def __init__(self):
8888
# self.ui.config_fit_params_pushButton.clicked.connect(self.configure_fit_params)
8989
self.ui.clear_pushButton.clicked.connect(self.clear_plot)
9090
self.ui.export_single_figure_pushButton.clicked.connect(self.pub_ready_plot_export)
91-
self.ui.export_scan_figure_pushButton.clicked.connect(self.pub_ready_plot_export)
91+
self.ui.export_scan_figure_pushButton.clicked.connect(self.export_window)
9292
self.ui.analyze_spectra_fits_pushButton.clicked.connect(self.analyze_spectra_fits)
9393

9494
self.ui.import_pkl_pushButton.clicked.connect(self.open_pkl_file)
@@ -495,6 +495,10 @@ def fit_and_plot(self):
495495

496496
except Exception as e:
497497
self.ui.result_textBrowser.append(str(e))
498+
499+
def export_window(self):
500+
self.export_window = ExportFigureWindow()
501+
self.export_window.export_fig_signal.connect(self.pub_ready_plot_export)
498502

499503
def pub_ready_plot_export(self):
500504
filename = QtWidgets.QFileDialog.getSaveFileName(self,caption="Filename with EXTENSION")
@@ -511,10 +515,21 @@ def pub_ready_plot_export(self):
511515
data = self.spec_scan_file
512516
except:
513517
data = self.fit_scan_file
514-
param_selection = str(self.ui.comboBox.currentText())
515-
if param_selection == 'pk_pos': label = 'PL Peak Position (n.m.)'
516-
elif param_selection == 'fwhm': label = 'PL FWHM (n.m.)'
517-
cpm.plot_confocal(self.img, figsize=(10,10), stepsize = data['Scan Parameters']['X step size (um)'], cmap="seismic", cbar_label=label)
518+
if self.export_window.ui.reverse_checkBox.isChecked():
519+
colormap = str(self.export_window.ui.cmap_comboBox.currentText())+"_r"
520+
else:
521+
colormap = str(self.export_window.ui.cmap_comboBox.currentText())
522+
if str(self.export_window.ui.dataChannel_comboBox.currentText()) == "Fitted":
523+
param_selection = str(self.ui.comboBox.currentText())
524+
if param_selection == 'pk_pos': label = 'PL Peak Position (n.m.)'
525+
elif param_selection == 'fwhm': label = 'PL FWHM (n.m.)'
526+
cpm.plot_confocal(self.img, figsize=(10,10), stepsize = data['Scan Parameters']['X step size (um)'], cmap=colormap, cbar_label=label,
527+
vmin=self.export_window.ui.vmin_spinBox.value(), vmax=self.export_window.ui.vmax_spinBox.value())
528+
elif str(self.export_window.ui.dataChannel_comboBox.currentText()) == "Raw":
529+
cpm.plot_confocal(self.sums, figsize=(10,10), stepsize = data['Scan Parameters']['X step size (um)'], cmap=colormap,
530+
vmin=self.export_window.ui.vmin_spinBox.value(), vmax=self.export_window.ui.vmax_spinBox.value())
531+
plt.tick_params(direction='out', length=8, width=3.5)
532+
plt.tight_layout()
518533
plt.savefig(filename[0],bbox_inches='tight', dpi=300)
519534
plt.close()
520535
except:
@@ -674,9 +689,9 @@ def plot_intensity_sums(self):
674689
#intensities = np.reshape(intensities, newshape=(2048, numb_pixels_X*numb_pixels_Y))
675690

676691
sums = np.sum(self.intensities, axis=-1)
677-
sums = np.reshape(sums, newshape=(self.numb_x_pixels, self.numb_y_pixels))
692+
self.sums = np.reshape(sums, newshape=(self.numb_x_pixels, self.numb_y_pixels))
678693

679-
self.ui.intensity_sums_viewBox.setImage(sums, scale=
694+
self.ui.intensity_sums_viewBox.setImage(self.sums, scale=
680695
(self.x_step_size,
681696
self.y_step_size))
682697
self.ui.intensity_sums_viewBox.view.invertY(False)
@@ -884,6 +899,45 @@ def run(self):
884899
win = Analyze()
885900
QtGui.QApplication.instance().exec_()
886901
return win
902+
903+
"""Export Images GUI"""
904+
ui_file_path = (base_path / "export_fig_gui.ui").resolve()
905+
export_WindowTemplate, export_TemplateBaseClass = pg.Qt.loadUiType(ui_file_path)
906+
907+
class ExportFigureWindow(export_TemplateBaseClass):
908+
909+
export_fig_signal = QtCore.pyqtSignal()
910+
911+
def __init__(self):
912+
export_TemplateBaseClass.__init__(self)
913+
914+
self.ui = export_WindowTemplate()
915+
self.ui.setupUi(self)
916+
self.ui.cmap_comboBox.addItems(['viridis', 'plasma', 'inferno', 'magma',
917+
'cividis','Greys', 'Purples', 'Blues',
918+
'Greens', 'Oranges', 'Reds', 'YlOrBr',
919+
'YlOrRd', 'OrRd', 'PuRd', 'RdPu', 'BuPu',
920+
'GnBu', 'PuBu', 'YlGnBu', 'PuBuGn', 'BuGn',
921+
'YlGn', 'binary', 'gist_yarg', 'gist_gray',
922+
'gray', 'bone', 'pink', 'spring', 'summer',
923+
'autumn', 'winter', 'cool', 'Wistia', 'hot',
924+
'afmhot', 'gist_heat', 'copper', 'rainbow', 'jet'])
925+
self.ui.dataChannel_comboBox.addItems(['Raw', 'Fitted'])
926+
self.ui.exportFig_pushButton.clicked.connect(self.export)
927+
# self.ui.legend_checkBox.stateChanged.connect(self.legend_title)
928+
self.show()
929+
930+
# def legend_title(self):
931+
# if self.ui.legend_checkBox.isChecked():
932+
# self.ui.legend1_lineEdit.setEnabled(True)
933+
# self.ui.legend2_lineEdit.setEnabled(True)
934+
# else:
935+
# self.ui.legend1_lineEdit.setEnabled(False)
936+
# self.ui.legend2_lineEdit.setEnabled(False)
937+
938+
def export(self):
939+
self.export_fig_signal.emit()
940+
self.close()
887941

888942
"""Run the Main Window"""
889943
def run():
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ui version="4.0">
3+
<class>ExportFigure</class>
4+
<widget class="QWidget" name="ExportFigure">
5+
<property name="geometry">
6+
<rect>
7+
<x>0</x>
8+
<y>0</y>
9+
<width>302</width>
10+
<height>317</height>
11+
</rect>
12+
</property>
13+
<property name="windowTitle">
14+
<string>Form</string>
15+
</property>
16+
<layout class="QGridLayout" name="gridLayout">
17+
<item row="5" column="1">
18+
<widget class="QSpinBox" name="vmax_spinBox">
19+
<property name="font">
20+
<font>
21+
<pointsize>15</pointsize>
22+
</font>
23+
</property>
24+
<property name="maximum">
25+
<number>1000000000</number>
26+
</property>
27+
</widget>
28+
</item>
29+
<item row="7" column="0">
30+
<widget class="QLabel" name="label_5">
31+
<property name="font">
32+
<font>
33+
<pointsize>15</pointsize>
34+
</font>
35+
</property>
36+
<property name="text">
37+
<string>Color Bar Label</string>
38+
</property>
39+
</widget>
40+
</item>
41+
<item row="0" column="0" colspan="2">
42+
<widget class="QLabel" name="label">
43+
<property name="font">
44+
<font>
45+
<pointsize>15</pointsize>
46+
</font>
47+
</property>
48+
<property name="text">
49+
<string>Data Channel to Save</string>
50+
</property>
51+
</widget>
52+
</item>
53+
<item row="1" column="0" colspan="2">
54+
<widget class="QComboBox" name="dataChannel_comboBox">
55+
<property name="font">
56+
<font>
57+
<pointsize>15</pointsize>
58+
</font>
59+
</property>
60+
</widget>
61+
</item>
62+
<item row="3" column="0" colspan="2">
63+
<widget class="QComboBox" name="cmap_comboBox">
64+
<property name="font">
65+
<font>
66+
<pointsize>15</pointsize>
67+
</font>
68+
</property>
69+
</widget>
70+
</item>
71+
<item row="2" column="0">
72+
<widget class="QLabel" name="label_2">
73+
<property name="font">
74+
<font>
75+
<pointsize>15</pointsize>
76+
</font>
77+
</property>
78+
<property name="text">
79+
<string>ColorMap</string>
80+
</property>
81+
</widget>
82+
</item>
83+
<item row="5" column="0">
84+
<widget class="QSpinBox" name="vmin_spinBox">
85+
<property name="font">
86+
<font>
87+
<pointsize>15</pointsize>
88+
</font>
89+
</property>
90+
<property name="maximum">
91+
<number>1000000000</number>
92+
</property>
93+
</widget>
94+
</item>
95+
<item row="4" column="0">
96+
<widget class="QLabel" name="label_3">
97+
<property name="font">
98+
<font>
99+
<pointsize>15</pointsize>
100+
</font>
101+
</property>
102+
<property name="text">
103+
<string>ColorBar Min</string>
104+
</property>
105+
</widget>
106+
</item>
107+
<item row="4" column="1">
108+
<widget class="QLabel" name="label_4">
109+
<property name="font">
110+
<font>
111+
<pointsize>15</pointsize>
112+
</font>
113+
</property>
114+
<property name="text">
115+
<string>ColorBar Max</string>
116+
</property>
117+
</widget>
118+
</item>
119+
<item row="8" column="0" colspan="2">
120+
<widget class="QLineEdit" name="cbar_label">
121+
<property name="font">
122+
<font>
123+
<pointsize>15</pointsize>
124+
</font>
125+
</property>
126+
</widget>
127+
</item>
128+
<item row="9" column="0" colspan="2">
129+
<widget class="QPushButton" name="exportFig_pushButton">
130+
<property name="font">
131+
<font>
132+
<pointsize>15</pointsize>
133+
</font>
134+
</property>
135+
<property name="text">
136+
<string>Export Figure</string>
137+
</property>
138+
</widget>
139+
</item>
140+
<item row="2" column="1">
141+
<widget class="QCheckBox" name="reverse_checkBox">
142+
<property name="font">
143+
<font>
144+
<pointsize>15</pointsize>
145+
</font>
146+
</property>
147+
<property name="text">
148+
<string>Reversed</string>
149+
</property>
150+
</widget>
151+
</item>
152+
</layout>
153+
</widget>
154+
<resources/>
155+
<connections/>
156+
</ui>

0 commit comments

Comments
 (0)
Please sign in to comment.