I have a pandas DataFrame with 3 columns, shown below.
col1 value flag
1 0 0
2 0.03915 0
3 0.13 1
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'])
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.
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')