matplotlib: plot multiple columns of pandas data frame on the bar chart

后端 未结 2 700
故里飘歌
故里飘歌 2020-12-07 16:33

I am using the following code to plot a bar-chart:

import matplotlib.pyplot as pls 
my_df.plot(x=\'my_timestampe\', y=\'col_A\', kind=\'bar\') 
plt.show()


        
相关标签:
2条回答
  • 2020-12-07 17:00

    Although the accepted answer works fine, since v0.21.0rc1 it gives a warning

    UserWarning: Pandas doesn't allow columns to be created via a new attribute name

    Instead, one can do

    df[["X", "A", "B", "C"]].plot(x="X", kind="bar")
    
    0 讨论(0)
  • 2020-12-07 17:17

    You can plot several columns at once by supplying a list of column names to the plot's y argument.

    df.plot(x="X", y=["A", "B", "C"], kind="bar")
    

    This will produce a graph where bars are sitting next to each other.

    In order to have them overlapping, you would need to call plot several times, and supplying the axes to plot to as an argument ax to the plot.

    import pandas as pd
    import matplotlib.pyplot as plt
    import numpy as np
    
    y = np.random.rand(10,4)
    y[:,0]= np.arange(10)
    df = pd.DataFrame(y, columns=["X", "A", "B", "C"])
    
    ax = df.plot(x="X", y="A", kind="bar")
    df.plot(x="X", y="B", kind="bar", ax=ax, color="C2")
    df.plot(x="X", y="C", kind="bar", ax=ax, color="C3")
    
    plt.show()
    

    0 讨论(0)
提交回复
热议问题