Function to extract data from files according to pid.

        This function will read in the data with
        :class:`bowie.plotutils.readdata.ReadInData`.

def input_data(self):
        """Function to extract data from files according to pid.

        This function will read in the data with
        :class:`bowie.plotutils.readdata.ReadInData`.

        """
        ordererd = np.sort(np.asarray(list(self.plot_info.keys())).astype(int))

        trans_cont_dict = OrderedDict()
        for i in ordererd:
            trans_cont_dict[str(i)] = self.plot_info[str(i)]

        self.plot_info = trans_cont_dict

        # set empty lists for x,y,z
        x = [[]for i in np.arange(len(self.plot_info.keys()))]
        y = [[] for i in np.arange(len(self.plot_info.keys()))]
        z = [[] for i in np.arange(len(self.plot_info.keys()))]

        # read in base files/data
        for k, axis_string in enumerate(self.plot_info.keys()):

            if 'file' not in self.plot_info[axis_string].keys():
                continue
            for j, file_dict in enumerate(self.plot_info[axis_string]['file']):
                data_class = ReadInData(**{**self.general, **file_dict,
                                           **self.plot_info[axis_string]['limits']})

                x[k].append(data_class.x_append_value)
                y[k].append(data_class.y_append_value)
                z[k].append(data_class.z_append_value)

            # print(axis_string)

        # add data from plots to current plot based on index
        for k, axis_string in enumerate(self.plot_info.keys()):

            # takes first file from plot
            if 'indices' in self.plot_info[axis_string]:
                if type(self.plot_info[axis_string]['indices']) == int:
                    self.plot_info[axis_string]['indices'] = (
                        [self.plot_info[axis_string]['indices']])

                for index in self.plot_info[axis_string]['indices']:

                    index = int(index)

                    x[k].append(x[index][0])
                    y[k].append(y[index][0])
                    z[k].append(z[index][0])

        # read or append control values for ratio plots
        for k, axis_string in enumerate(self.plot_info.keys()):
            if 'control' in self.plot_info[axis_string]:
                if ('name' in self.plot_info[axis_string]['control'] or
                        'label' in self.plot_info[axis_string]['control']):
                    file_dict = self.plot_info[axis_string]['control']
                    if 'limits' in self.plot_info[axis_string].keys():
                        liimits_dict = self.plot_info[axis_string]['limits']

                    data_class = ReadInData(**{**self.general, **file_dict,
                                               **self.plot_info[axis_string]['limits']})
                    x[k].append(data_class.x_append_value)
                    y[k].append(data_class.y_append_value)
                    z[k].append(data_class.z_append_value)

                elif 'index' in self.plot_info[axis_string]['control']:
                    index = int(self.plot_info[axis_string]['control']['index'])

                    x[k].append(x[index][0])
                    y[k].append(y[index][0])
                    z[k].append(z[index][0])

            # print(axis_string)

        # transfer lists in PlotVals class.
        value_classes = []
        for k in range(len(x)):
            value_classes.append(PlotVals(x[k], y[k], z[k]))

        self.value_classes = value_classes
        return