我正在使用plotnine
基于 R 的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, 0, 0, 1, 0, 0, 1, 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
)
我能想到的唯一方法是创建一个辅助数据帧,其值为 a 如果 b=1 和 None 如果 b=0,但这感觉有点笨拙