首页 > 解决方案 > 在 matplotlib 中对 pandas 数据框进行条件绘图

问题描述

我有以下的多面板图:

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 的点。熊猫中有没有一种有效的方法来做这样的事情?

标签: pythonpandasmatplotlibastronomy

解决方案


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


推荐阅读