diff --git a/xpdView/waterfall_2d.py b/xpdView/waterfall_2d.py index 5642500..56c0854 100644 --- a/xpdView/waterfall_2d.py +++ b/xpdView/waterfall_2d.py @@ -36,6 +36,7 @@ def __init__(self, key_list, data_dict, fig, canvas): self.data_dict = data_dict self.key_list = key_list self.fig = fig + self.normalized = False self.canvas = canvas self.ax = self.fig.add_subplot(111) self.x_offset = 0 @@ -50,16 +51,25 @@ def generate_waterfall(self): None """ self.ax.cla() - # self.ax.hold(True) - for i in range(0, len(self.key_list)): - temp_x = self.normalized_data[self.key_list[i]][0].copy() - temp_y = self.normalized_data[self.key_list[i]][1].copy() - temp_x += self.x_offset * i - temp_y += self.y_offset * i - self.ax.plot(temp_x, temp_y) + title = 'Data not normalized' + if self.normalized: + data = self.normalized_data + title = 'Data Normalized' + else: + data = self.data_dict + list_data = (data[k] for k in self.key_list) # you can do a list comp here too + for i, (x, y) in enumerate(list_data): + self.ax.plot(x + self.x_offset * i, y + self.y_offset * i) + self.ax.set_title(title) self.ax.autoscale() self.canvas.draw() + def is_normalized(self): + return self.normalized + + def set_normalized(self, state): + self.normalized = state + def normalize_data(self): """This method normalizes data for plotting @@ -72,4 +82,4 @@ def normalize_data(self): temp = self.data_dict[key].copy() temp[1] = temp[1] - temp[1].min() temp[1] = temp[1] / (temp[1].max() - temp[1].min()) - self.normalized_data[key] = temp \ No newline at end of file + self.normalized_data[key] = temp diff --git a/xpdView/xpd_view.py b/xpdView/xpd_view.py index e851925..edc5714 100644 --- a/xpdView/xpd_view.py +++ b/xpdView/xpd_view.py @@ -519,21 +519,29 @@ def twod_plot_settings(self): x_offset_slider.setMinimum(0) x_offset_slider.setMaximum(20) x_offset_slider.valueChanged.connect(self.set_x_offset) - + normalize_option_label = QtGui.QLabel() + normalize_option_label.setText("Normalize data:") + normalize_option_box = QtGui.QCheckBox() + # data is normalized by default + normalize_option_box.setChecked(self.water.is_normalized()) + normalize_option_box.stateChanged.connect(self.set_normalization) layout = QtGui.QHBoxLayout() - layout.addStretch() - layout.addWidget(y_offset_label) - layout.addStretch() - layout.addWidget(y_offset_slider) - layout.addStretch() - layout.addWidget(x_offset_label) - layout.addStretch() - layout.addWidget(x_offset_slider) + for widget in [y_offset_label, y_offset_slider, x_offset_label, x_offset_slider, normalize_option_label, normalize_option_box]: + layout.addStretch() + layout.addWidget(widget) settings_window.setLayout(layout) settings_window.show() settings_window.exec_() + def set_normalization(self, state): + if state == 2: + self.water.set_normalized(True) + else: + self.water.set_normalized(False) + + self.water.generate_waterfall() + def set_x_offset(self, value): self.water.x_offset = value self.water.generate_waterfall()