Plot data from pandas DataFrame, colour of points dependant on a column

前端 未结 3 1659
一整个雨季
一整个雨季 2021-01-21 09:32

I have a pandas DataFrame with 3 columns, shown below.

col1 value flag 1 0 0 2 0.03915 0 3 0.13 1

相关标签:
3条回答
  • 2021-01-21 10:24

    You can pass a vector to the scatter plot as follows

    import matplotlib.pyplot as plt
    
    df = pd.DataFrame(data = {'value':[0, 0.4, 0.13], 'flag':[0,0,1]})
    plt.scatter(df['value'], df.index, c=df['flag'])
    

    0 讨论(0)
  • 2021-01-21 10:29

    Assuming the dataframe containing the given data is df, this is what you want. You can create a list of colors according to your condition flag column and its values. Feed that colors list to color argument in the built-in DataFrame.plot.scatter function. (You can find the docs here.)

    colors = ['r' if flag==1 else 'b' for flag in df.flag]
    df.plot.scatter('col1', 'value', color=colors)
    

    Hope this helps.

    0 讨论(0)
  • 2021-01-21 10:34

    You can use the built-in df.plot.scatter() function and pass the flag column to the color argument:

    import pandas as pd
    
    idx = [1,2,3]
    value = [0., 0.03, 0.13]
    flag = [0, 0, 1]
    
    df = pd.DataFrame(dict(idx=idx, value=value, flag=flag))
    
    df.plot.scatter('idx', 'value', c='flag', cmap='RdBu_r')
    

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