def create_violin_plot(df, columns, title):
    """
        This method will create violin plots given a DataFrame and columns.

        Args:
            df (pandas.DataFrame): data that will be displayed
            columns (list): list of columns
            title (str): violin plot title

        Returns:
            figure dict object formatted for plotly
    """
    # Create trace data
    data = []
    for c in columns:
        data.append(
            {
                "type": 'violin',
                "y": df[c],
                #"line": {"color": 'black'},
                "box": {"visible": True},
                "meanline": {"visible": True},
                #"fillcolor": '#8dd3c7',
                "opacity": 0.6,
                "name": c,
                "points": 'all',
                "jitter": 0
            }
        )
    # Create layout
    layout = {
        "title": title,
        "yaxis": {"zeroline": False}
    }

    fig = {'data': data, 'layout': layout}


    return fig