def __init__(self, project):
        super().__init__()
        self.ui = Ui_Prepare()
        self.ui.setupUi(self)
        self.project = project
        self.last_hotword_index = 0
        self.main_dataset = DataSet()
        # Init hotword list
        
        self.hotwords = self.project.project_info['hotwords']
        for hotword in self.hotwords:
            self.ui.current_hotword.addItem(hotword)

        self.sample_classes = [None] + self.hotwords

        # Init directory list
        self.folder_list_layout = QtWidgets.QVBoxLayout()
        self.folder_list = [[] for i in range(len(self.hotwords) + 1)]

        self.pie_slices = [QtChart.QPieSlice("non-hotword ()", 0)]
        self.pie_slices.extend([QtChart.QPieSlice("{} ()".format(name), 0) for name in self.hotwords])
        self.display_selected_directories(0)

        # Pie chart
        self.pie_series = QtChart.QPieSeries()
        for pie_slice in self.pie_slices:
            self.pie_series.append(pie_slice)
        self.pie_series.setHoleSize(0)

        self.pie_view = QtChart.QChartView()
        self.pie_view.setRenderHint(QtGui.QPainter.Antialiasing)
        self.pie_view.chart().layout().setContentsMargins(0,0,0,0)
        self.pie_view.chart().setMargins(QtCore.QMargins(0,0,0,0))
        self.pie_view.chart().legend().setAlignment(QtCore.Qt.AlignRight)
        self.pie_view.chart().addSeries(self.pie_series)

        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(self.pie_view)
        self.ui.graph_placeholder.setLayout(layout)

        #Connects
        self.ui.current_hotword.currentIndexChanged.connect(self.display_selected_directories)
        self.ui.add_folder_button.clicked.connect(self.add_folder)
        self.ui.test_subset_CB.stateChanged.connect(self.ui.test_subset_percent.setEnabled)
        self.ui.val_on_test_set_CB.stateChanged.connect(self.disable_validation_set)

        self.ui.training_percent.valueChanged.connect(self.on_trainsample_update)
        self.ui.validation_percent.valueChanged.connect(self.on_valsample_update)
        self.ui.test_percent.valueChanged.connect(self.on_testsample_update)
        self.ui.done_button.clicked.connect(self.on_done_clicked)
        self.ui.add_set_PB.clicked.connect(self.add_set)
Ejemplo n.º 2
0
    def __init__(self, chartViewParent: QtChart.QChartView, *preset):
        super().__init__()

        self.__chart = QtChart.QChart()
        self.__chart.legend().hide()
        self.__chart.setMinimumHeight(180)
        self.__chart.setMargins(QtCore.QMargins(0, 0, 0, 0))
        self.__series = QtChart.QPieSeries()
        self.__series.setHoleSize(0.58)
        self.__series.setPieSize(0.75)

        for i in range(8):
            ps = QtChart.QPieSlice(str(i), 1)
            ps.setExploded(True)
            ps.setExplodeDistanceFactor(RING_NORMAL)

            ps.clicked.connect(self.__slice_clicked)
            ps.hovered.connect(self.__slice_hovered)
            ps.doubleClicked.connect(self.__slice_dblclicked)

            self.__series.append(ps)

        self.__chart.addSeries(self.__series)

        chartViewParent.setRenderHint(QtGui.QPainter.Antialiasing, True)
        chartViewParent.setChart(self.__chart)

        self.__last_slice = self.__series.slices()[0]
Ejemplo n.º 3
0
    def update_piechart(self):

        self.pieseries.clear()

        if self.combobox.currentText():
            self.pieseries.clear()
            item_name = self.combobox.currentText()
            item_sold = [sum(self.df.loc[(self.df['Date'] == i ) & (self.df['Transaction Type'] == 'Sell') & (self.df[' Product ']== item_name),
                ' Amount (kg) ']) for i in self.temp_list] 
            item_bought = [sum(self.df.loc[(self.df['Date'] == i ) & (self.df['Transaction Type'] == 'Buy') & (self.df[' Product ']== item_name),
                ' Amount (kg) ']) for i in self.temp_list]

            slice_s = qtch.QPieSlice(item_name + "sold",sum(item_sold))
            slice_b = qtch.QPieSlice(item_name + "bought",sum(item_bought))
            
            self.pieseries.append(slice_s)
            self.pieseries.append(slice_b)
Ejemplo n.º 4
0
 def updateChart(self, data: list):
     self.pie_series.clear()
     if (sum([d[1] for d in data]) > 0):
         self.pie_slices = [
             QtChart.QPieSlice("{}- {} ({:.2}%)".format(*d), d[1])
             for d in data
         ]
         for pie_slice in self.pie_slices:
             self.pie_series.append(pie_slice)
Ejemplo n.º 5
0
    def update_data(self):
        
        '''
        Updates the data in the graph when the filter is applied.
        '''

        self.series.clear()
        self.pieseries.clear()

        todate =  (self.to_date.date().toString('yyyy-MM-dd'))
        fromdate = (self.from_date.date().toString('yyyy-MM-dd'))

        self.df = pd.read_csv('test.csv')
        self.days = pd.date_range(start= todate,end=fromdate)

        x = [i for i in self.df['Date'] if i in self.days]
        self.temp_list = sorted(list(set(x)))
        
        income =  [sum(self.df.loc[(self.df['Date'] == i) & (self.df['Transaction Type'] == 'Sell'),'Total Price']) for i in self.temp_list] 
        expense = [sum(self.df.loc[(self.df['Date'] == i) & (self.df['Transaction Type'] == 'Buy' ),'Total Price']) for i in self.temp_list]
        
        
        piecount = len(self.c._data)
        item_list = self.c._data
        
        for i in range(piecount):
            item_name = item_list[i]
            item_sold = [sum(self.df.loc[(self.df['Date'] == i ) & (self.df['Transaction Type'] == 'Buy') & (self.df[' Product ']== item_name),
                ' Amount (kg) ']) for i in self.temp_list]
            
            slice_ = qtch.QPieSlice(item_list[i],sum(item_sold))
            self.pieseries.append(slice_)


        categories = self.temp_list  # x axis   
        
        Income = qtch.QBarSet("Income") # dataset in the bar 
        Expense = qtch.QBarSet("Expense") # dateset

        Income.append(income) 
        Expense.append(expense)
        
        self.series.append(Income)      
        self.series.append(Expense)     
        
        self.axis.append(categories)        
Ejemplo n.º 6
0
    def __init__(self, data: list):
        #data: list of tuple (label, value, percent)
        QtChart.QChartView.__init__(self)
        self.pie_slices = [
            QtChart.QPieSlice("{}- {} ({:.2}%)".format(*d), d[1]) for d in data
        ]

        # Pie chart
        self.pie_series = QtChart.QPieSeries()
        for pie_slice in self.pie_slices:
            self.pie_series.append(pie_slice)
        self.pie_series.setHoleSize(0)

        self.setRenderHint(QtGui.QPainter.Antialiasing)
        self.chart().layout().setContentsMargins(0, 0, 0, 0)
        self.chart().setMargins(QtCore.QMargins(0, 0, 0, 0))
        self.chart().legend().setAlignment(QtCore.Qt.AlignRight)
        self.chart().addSeries(self.pie_series)
Ejemplo n.º 7
0
    def init_graph(self):
        self.pieSlices = []
        for hw in self.project.project_info['hotwords'] + ['non-hotword']:
            self.pieSlices.append(QtChart.QPieSlice("{} ()".format(hw), 0))
        self.pie_series = QtChart.QPieSeries()

        for pie_slice in self.pieSlices:
            self.pie_series.append(pie_slice)
        self.pie_series.setHoleSize(0)

        self.pie_view = QtChart.QChartView()
        self.pie_view.setRenderHint(QtGui.QPainter.Antialiasing)
        self.pie_view.chart().layout().setContentsMargins(0,0,0,0)
        self.pie_view.chart().setMargins(QtCore.QMargins(0,0,0,0))
        self.pie_view.chart().legend().setAlignment(QtCore.Qt.AlignBottom)
        self.pie_view.chart().addSeries(self.pie_series)

        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(self.pie_view)
        self.ui.graph_placeholder.setLayout(layout)