<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def bar3_chart(self, title, labels, data1, file_name, data2, data3, legend=["", ""]):
 """ Generate a bar plot with three columns in each x position and save it to file_name :param title: title to be used in the chart :param labels: list of labels for the x axis :param data1: values for the first columns :param file_name: name of the file in which to save the chart :param data2: values for the second columns :param data3: values for the third columns :param legend: legend to be shown in the chart :return: """


        colors = ["orange", "grey"]

        data1 = self.__convert_none_to_zero(data1)
        data2 = self.__convert_none_to_zero(data2)
        data3 = self.__convert_none_to_zero(data3)

        fig, ax = plt.subplots(1)
        xpos = np.arange(len(data1))
        width = 0.28

        plt.title(title)
        y_pos = np.arange(len(data1))

        ppl.bar(xpos + width + width, data3, color="orange", width=0.28, annotate=True)
        ppl.bar(xpos + width, data1, color='grey', width=0.28, annotate=True)
        ppl.bar(xpos, data2, grid='y', width=0.28, annotate=True)
        plt.xticks(xpos + width, labels)
        plt.legend(legend, loc=2)

        os.makedirs(os.path.dirname(file_name), exist_ok=True)
        plt.savefig(file_name)
        plt.close()