在 matplotlib 中的 pandas 数据帧上绘制条件

Plotting with conditions on pandas dataframe in matplotlib

我有以下的多面板图:

fig, axs = plt.subplots(1, 2, sharey=True, figsize = (20 , 10) , gridspec_kw={'hspace': 0, 'wspace': 0})

axs[0].scatter(fullmergedf['gf_re_j'] , fullmergedf['PAB_SFR_EX2'] , s = 200)
axs[0].scatter(fullmergedf['gf_re_j'] , fullmergedf['PAB_SFR_EX2_LL'] , s = 200 , marker = '+' , c = 'black')
axs[0].plot([0 , 2] , [0 , 0] , '--' , c = 'gray')
axs[0].set_ylabel(r'log($SFR_{Pa\beta}$) - log($SFR_{UV}^{corr}$)')
axs[0].set_xlabel(r"$R_{eff}$ [arcsec]")
axs[0].axis([0 , 1.7 , -2.5 , 3])

axs[1].scatter(fullmergedf['gf_n_j'] , fullmergedf['PAB_SFR_EX2'] , s = 200)
axs[1].scatter(fullmergedf['gf_n_j'] , fullmergedf['PAB_SFR_EX2_LL'] , s = 200 , marker = '+' , c = 'black')
axs[1].plot([0 , 8] , [0 , 0] , '--' , c = 'gray')
axs[1].set_xlabel(r"n")
axs[1].axis([0 , 3 , -2.5 , 3])
#axs[1].set_xscale('log')

plt.show()

我想使用数据框中另一列的条件删除此散点图中的一些点。条件需要是仅指向该对象的 fullmergedf['gf_f_j'] 为 0 的点。 pandas 中有没有一种有效的方法来做这样的事情?

你能做一个布尔切片吗?所以可能是 x = fullmergedf['gf_re_j'][fullmergedf['gf_re_j'] == 0]y = fullmergedf['PAB_SFR_EX2'][fullmergedf['gf_re_j'] == 0],然后是 ax.scatter(x,y)(为了可读性而分解为变量)。