Пример #1
0
	def plotFilterRange(self, small, large, dates, **kwargs):
		self.form = MainWindow()
		self.histogram = HistogramWidget(self.form.btnHistogram)
		self.cluster = ClusterWidget(self.form.btnCluster)
		# self.form.move(300, 300)
		self.form.timeline.setScene(self.scene)
		self.form.timeline.setSceneRect(0, 0, 710, 10)

		dayIndices = list(map(lambda x: x[1], day))
		dayIndex = -1
		for d in dates:
			d = d[0:10]  # b'2014-01-01 00:00:00' => b'2014-01-01'
			if dayIndex != dayIndices.index(d):
				dayIndex = dayIndices.index(d)
				rect = self.scene.addRect(2 * dayIndex, 1, 1, 10, self.pen)
				rect.setToolTip(bytes.decode(d))

		self.scatterpoints = SelectableScatterPlotItem(small, large, dates, pen=None, symbol='o', **kwargs)
		self.form.graphicsView.addItem(self.scatterpoints)
		self.form.graphicsView.setLabel(axis = 'left', text = 'large')
		self.form.graphicsView.setLabel(axis = 'bottom', text = 'small')
		self.form.graphicsView.showGrid(True, True)
		self.form.show()
		self.tooltip = pg.TextItem(text = '', color = (176, 127, 255), anchor = (1, 1))
		self.form.graphicsView.addItem(self.tooltip)
		self.tooltip.hide()
		self.scatterpoints.scene().sigMouseMoved.connect(self.onMove)
		self.form.btnFilter.clicked.connect(self.onfilterWindow)
		self.form.btnQuit.clicked.connect(self.onQuit)
		self.form.btnDelete.clicked.connect(self.onDelete)
		self.form.btnUndo.clicked.connect(self.undoFunction)


		self.form.btnHistogram.clicked.connect(self.onHistogram)
		self.form.btnCluster.clicked.connect(self.onCluster)
		self.form.actionFitLine.triggered.connect(self._update_regression_line)
		self.form.actionFitCubic.triggered.connect(self.fitCubic)
		self.form.action_Monatsverteilung.triggered.connect(functools.partial(self.setHistogramInterval, "month"))
		self.form.action_Jahresverteilung.triggered.connect(functools.partial(self.setHistogramInterval, "year"))
		self.form.action_Tagesverteilung.triggered.connect(functools.partial(self.setHistogramInterval, "day"))
		self.scatterpoints.selection.change_listeners += (self._update_regression_line, self.fitCubic, self.activateButtonHistogram)

		#Aktivieren des Undo-Buttons
		if self.stack.isEmpty():
			self.form.btnUndo.setEnabled(False)
		else:
			self.form.btnUndo.setEnabled(True)

		insecurity_line_pen = QPen(QColor.fromRgbF(1, 1, 0, 0.5))
		self._regression_lines = (
			pg.InfiniteLine(),
			pg.InfiniteLine(pen=insecurity_line_pen),
			pg.InfiniteLine(pen=insecurity_line_pen))
		for l in self._regression_lines:
			l.hide()
			self.form.graphicsView.addItem(l)

		print("len Filter: ", len(self.new_data))