在直方图上绘制时,轴表不可见

时间:2019-07-03 06:36:16

标签: python matplotlib histogram

我正在尝试从一些excel文件中读取数据,并在清理之后。我正在尝试绘制直方图和包含不同行和列值的表。我能够看到直方图,但看不到表格。我为此使用matplotlib。

我尝试更改表格的位置,并且也使用了zorder。我尝试禁用历史记录图,但仍然看不到表格。下面是我尝试过的代码:

    reports_data= [
        (self.data_left_camera, 'left_points_results.xlsx'),
        (self.data_right_camera,
         'right_points_results.xlsx'),
        (self.data_front_camera,
         'front_points_results.xlsx'),
        (self.data_rear_camera,  'rear_points_results.xlsx')]
    rep_path = os.path.join(self.path, self.test_case)
    rec_list = []
    dirnames = os.listdir(rep_path)
    for dir in dirnames:
        if dir.__contains__("mi5"):
            rec_list.append(os.path.join(rep_path,dir))
    for rec in rec_list:
        rec_report = os.path.join(rep_path, rec)
        if os.path.isdir(rec_report):
            for output, report in reports_data:
                xl = pd.ExcelFile(os.path.join(rec_report, report), encoding = 'utf8')
                df = xl.parse("Sheet1")

                sec_ranges = df['sl'].dropna().tolist()
                range_val = []
                for det_range in sec_ranges:
                    ranges=ast.literal_eval(det_range)
                    for rang in ranges:
                        range_val.append(round(rang[1],1))
                range_df = pd.DataFrame(range_val,columns=["range"])
                range_df['frequency'] = range_df.groupby('range')['range'].transform('count')
                range_df = range_df.drop_duplicates()
                fig,ax = plt.subplots(figsize =(20,8))
                val =plt.hist(range_df["range"],bins=self.range_values,align='mid',edgecolor='black')

                plt.xlabel("Section Range")
                plt.ylabel("Number of Frames")
                plt.xlim([self.range_values[0],self.range_values[-1]])
                plt.xticks(self.range_values)
                ax.set_title("Number of frames vs Ranges")
                c = list(val[0])
                d = list(val[1][:-1])
                c_t = [c,d]
                ax.table(cellText=c_t, rowLabels=["frames", "range"],
                        loc='best', cellLoc='center',
                        bbox=[0.8, -0.25, 0.9, 0.1],zorder = 1)
                plt.axis("auto")
                plt.tight_layout()
                plt.show()

我正在附上我得到的输出图。在这里,我只得到直方图,而不是表格。

enter image description here

0 个答案:

没有答案