【发布时间】:2020-10-17 13:43:10
【问题描述】:
我正在使用基于 R 的 ggplot 的 python 包 plotnine 并且我正在尝试创建一个我想要绘制一条线的图,然后,我想添加一个 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 if b=1 和 None if b=0 的值,但这感觉有点笨拙
【问题讨论】: