Search code examples
pythonpandasdataframematplotlibscatter-plot

How to plot two columns of a pandas data frame using points


I have a pandas dataframe and would like to plot values from one column versus the values from another column. Fortunately, there is plot method associated with the dataframes that seems to do what I need:

df.plot(x='col_name_1', y='col_name_2')

Unfortunately, it looks like among the plot styles (listed here after the kind parameter), there are not points. I can use lines or bars or even density but not points. Is there a work around that can help to solve this problem?


Solution

  • You can specify the style of the plotted line when calling df.plot:

    df.plot(x='col_name_1', y='col_name_2', style='o')
    

    The style argument can also be a dict or list, e.g.:

    import numpy as np
    import pandas as pd
    
    d = {'one' : np.random.rand(10),
         'two' : np.random.rand(10)}
    
    df = pd.DataFrame(d)
    
    df.plot(style=['o','rx'])
    

    All the accepted style formats are listed in the documentation of matplotlib.pyplot.plot.

    Output