微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何基于python中的条件添加geom_point图层

如何解决如何基于python中的条件添加geom_point图层

我正在使用基于R的plotnine的python软件包ggplot,并尝试创建一个绘图,在该绘图中我想绘制一条线,然后,我想添加一个geom_point图层来绘制如果验证了给定的条件,则只有一些要点。

因此,我有一个数据框,其中的变量包含实数(这是我要绘制为一行的实数),然后是二进制变量。如果第二个变量的值为1,我想用第一个变量的值绘制点,而第二个变量的值为0,则什么也不要。

我以一个小数据框为例

import pandas as pd
from plotnine import ggplot,aes,geom_line,geom_point
d = dict(
    a = np.arange(10),b = [0,1,0]
)
d = pd.DataFrame(d)

(ggplot(df,aes(x='a')) + 
 geom_line(aes(y='a'),color='black')
 # Some code to plot points with value a[i] if b[i]==1
 )

我能想到的唯一方法是创建一个第二个数据帧,如果b = 1,则值为b,如果b = 0,则为None,但这有点笨拙

解决方法

您必须将数据框与所需的点图层中的选定数据一起使用。

(ggplot(df,aes(x='a'))
 + geom_line(aes(y='a'),color='black')
 + geom_point(df[df['b'] == 1],aes(y='a')) # or geom_point(df.query('b == 1'),aes(y='a'))
 )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。