<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def analyze_quality_graph(self, obj):
 """ Takes in an the object returned by the MDAL query, and analyzes the quality of the data for each column in the df in the form of graphs. The Graphs returned show missing data events over time, and missing data frequency during each hour of the day To Do ----- Need to make it specific for varying meters and label it for each type, Either separate functions or make the function broader Parameters obj : ??? the object returned by the MDAL Query """


        data = obj.df

        for i in range(data.shape[1]):

            data_per_meter = data.iloc[:, [i]]  # need to make this work or change the structure

            data_missing, meter = self.identify_missing(data_per_meter)
            percentage = data_missing.sum() / (data.shape[0]) * 100

            print('Percentage Missing of ' + meter + ' data: ' + str(int(percentage)) + '%')
            data_missing.plot(figsize=(18, 5), x_compat=True, title=meter + " Missing Data over the Time interval")
            data_gaps = self.diff_boolean(data_missing, column_name=meter)

            data_missing['Hour'] = data_missing.index.hour
            ymax = int(data_missing.groupby('Hour').sum().max() + 10)
            data_missing.groupby('Hour').sum().plot(ylim=(0, ymax), figsize=(18, 5),
                                                    title=meter + " Time of Day of Missing Data")

            print(data_gaps)