plot DSC data and baselines
This commit is contained in:
@ -13,6 +13,8 @@ class TgCalculator(QtWidgets.QDialog, Ui_Dialog):
|
||||
self._management = management
|
||||
|
||||
self._plots = {}
|
||||
self._tg_baselines = {}
|
||||
self.dsc = []
|
||||
|
||||
self.limits = RegionItem(), RegionItem()
|
||||
for lim in self.limits:
|
||||
@ -26,18 +28,54 @@ class TgCalculator(QtWidgets.QDialog, Ui_Dialog):
|
||||
# s.valuesChanged.connect(self.management.shift_scale)
|
||||
|
||||
def clear(self):
|
||||
self.dsc = []
|
||||
self.listWidget.clear()
|
||||
for k, v in self._plots.items():
|
||||
for v in self._plots.values():
|
||||
self.graphicsView.removeItem(v)
|
||||
self._plots = {}
|
||||
|
||||
for v in self._tg_baselines.values():
|
||||
self.graphicsView.removeItem(v)
|
||||
self._tg_baselines = {}
|
||||
|
||||
def add_sets(self):
|
||||
for key, name in self._management.active_sets:
|
||||
data = self._management.data[key]
|
||||
if not isinstance(data.data, DSC):
|
||||
if isinstance(data.data, DSC):
|
||||
self.dsc.append(data)
|
||||
else:
|
||||
continue
|
||||
|
||||
item = QtWidgets.QListWidgetItem(name)
|
||||
item.setData(QtCore.Qt.UserRole, key)
|
||||
self.listWidget.addItem(item)
|
||||
|
||||
plot = PlotItem(x=data.x, y=data.y)
|
||||
self.graphicsView.addItem(plot)
|
||||
self._plots[key] = plot
|
||||
|
||||
@QtCore.pyqtSlot(name='on_pushButton_clicked')
|
||||
def calc_tg(self):
|
||||
baselines = tuple(lim.getRegion() for lim in self.limits)
|
||||
if baselines[0][0] > baselines[1][0]:
|
||||
baselines = baselines[1], baselines[0]
|
||||
|
||||
for idx in range(self.listWidget.count()):
|
||||
key = self.listWidget.item(idx).data(QtCore.Qt.UserRole)
|
||||
tg_results, glass, liquid, tangent = self._management[key].data.glass_transition(*baselines)
|
||||
|
||||
lines = []
|
||||
for line in (glass, liquid, tangent):
|
||||
plt = PlotItem(line[:, 0], line[:, 1])
|
||||
self.graphicsView.addItem(plt)
|
||||
lines.append(plt)
|
||||
self._tg_baselines[key] = lines
|
||||
|
||||
tg_plot = PlotItem(*zip((i for i in tg_results.values())))
|
||||
self.graphicsView.addItem(tg_plot)
|
||||
|
||||
def close(self) -> bool:
|
||||
self.clear()
|
||||
|
||||
return super().close()
|
||||
|
||||
|
Reference in New Issue
Block a user