def plot_comparison_dot(data: pd.DataFrame, feature: str, save_path: str):
    """
    Plot dot scatter plot for screen comparison

    :param data: pd.DataFrame, dataframe that contains value data for both screens
    :param feature: str, plotting feature, column name
    :param save_path: str, saving path
    :return:
    """
    feature1 = '%s1' % feature
    plt.figure(figsize=(9, 6))
    plt.scatter(data[feature], data[feature1], s=6, c='#A9A9A9')

    screen_fit = mat.fitting_linear(data[feature].tolist(), data[feature1].tolist())
    val_max = np.max(data[feature])
    val_min = np.min(data[feature])
    x = np.linspace(val_min*0.9, val_max*1.1, 1000)
    plt.plot(x, screen_fit[2]*x+screen_fit[3], linestyle='--', label='R2=%s' % screen_fit[1])

    plt.xlabel(feature)
    plt.legend(loc=4, bbox_to_anchor=(0.7, 0, 0.3, 0.3))
    plt.savefig('%s%s_comparison_dot.pdf' % (save_path, feature))
    plt.close()
            label(bleach_spots, connectivity=1), pixels_tseries)
        ctrl_pd['raw_int'] = ana.get_intensity(
            label(ctrl_spots, connectivity=1), pixels_tseries)
        ctrl_pd['pos'] = [pos] * num_ctrl_spots

        # link ctrl spots with corresponding organelle
        ctrl_pd['%s' % analyze_organelle] = obj.points_in_objects(
            label_organelle, ctrl_pd['x'], ctrl_pd['y'])

        print("### Image analysis: background correction ...")
        # background intensity measurement
        bg_int_tseries = ana.get_bg_int(pixels_tseries)
        pointer_pd['bg_int'] = [bg_int_tseries] * len(pointer_pd)

        # background intensity fitting
        bg_fit = mat.fitting_linear(np.arange(0, len(bg_int_tseries), 1),
                                    bg_int_tseries)
        pointer_pd = dat.add_columns(
            pointer_pd,
            ['bg_linear_fit', 'bg_linear_r2', 'bg_linear_a', 'bg_linear_b'],
            [[bg_fit[0]] * len(pointer_pd), [bg_fit[1]] * len(pointer_pd),
             [bg_fit[2]] * len(pointer_pd), [bg_fit[3]] * len(pointer_pd)])

        # background correction
        # use original measurement if fitting does not exist
        if np.isnan(bg_fit[2]):
            bg = bg_int_tseries
        else:
            bg = bg_fit[0]
        pointer_pd['bg_cor_int'] = ana.bg_correction(pointer_pd['raw_int'],
                                                     [bg] * len(pointer_pd))
        ctrl_pd['bg_cor_int'] = ana.bg_correction(ctrl_pd['raw_int'],