2024-04-19 14:15:56 发布
网友
我有一个包含3列的pandas数据帧,如下所示。在
col1 value flag 1 0 0 2 0.03915 0 3 0.13 1
我想从这个数据帧创建一个散点图,其中col1是x轴,value是y轴,我要做的是,对于有flag=0的行,我希望这个点的颜色是蓝色的,如果flag=1我想把点涂成红色。在
col1
value
flag=0
flag=1
是否有一个简单的方法来检查每行的标志列并相应地给点上色?在
可以将向量传递到散点图,如下所示
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'])
您可以使用内置的df.plot.scatter()函数并将flag列传递给color参数:
df.plot.scatter()
flag
color
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')
假设包含给定数据的dataframe是df,这就是您想要的。 您可以根据条件flag列及其值创建颜色列表。将颜色列表馈送给内置DataFrame.plot.scatter函数中的color参数。(您可以找到文档here。)
df
DataFrame.plot.scatter
colors = ['r' if flag==1 else 'b' for flag in df.flag] df.plot.scatter('col1', 'value', color=colors)
希望这有帮助。在
可以将向量传递到散点图,如下所示
您可以使用内置的
df.plot.scatter()
函数并将flag
列传递给color
参数:假设包含给定数据的dataframe是
df
,这就是您想要的。 您可以根据条件flag
列及其值创建颜色列表。将颜色列表馈送给内置DataFrame.plot.scatter
函数中的color
参数。(您可以找到文档here。)希望这有帮助。在
相关问题 更多 >
编程相关推荐