How to make Pareto Chart in python?

后端 未结 4 1498
野性不改
野性不改 2021-02-01 11:11

Pareto is very popular diagarm in Excel and Tableu. In excel we can easily draw a Pareto diagram but I found no easy way to draw the diagram in Python.

I have a pandas d

4条回答
  •  情话喂你
    2021-02-01 11:20

    You would probably want to create a new column with the percentage in it and plot one column as bar chart and the other as a line chart in a twin axes.

    import pandas as pd
    import matplotlib.pyplot as plt
    from matplotlib.ticker import PercentFormatter
    
    df = pd.DataFrame({'country': [177.0, 7.0, 4.0, 2.0, 2.0, 1.0, 1.0, 1.0]})
    df.index = ['USA', 'Canada', 'Russia', 'UK', 'Belgium', 'Mexico', 'Germany', 'Denmark']
    df = df.sort_values(by='country',ascending=False)
    df["cumpercentage"] = df["country"].cumsum()/df["country"].sum()*100
    
    
    fig, ax = plt.subplots()
    ax.bar(df.index, df["country"], color="C0")
    ax2 = ax.twinx()
    ax2.plot(df.index, df["cumpercentage"], color="C1", marker="D", ms=7)
    ax2.yaxis.set_major_formatter(PercentFormatter())
    
    ax.tick_params(axis="y", colors="C0")
    ax2.tick_params(axis="y", colors="C1")
    plt.show()
    

提交回复
热议问题