python - 在 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 的点。熊猫中有没有一种有效的方法来做这样的事情?
解决方案
你能做一个布尔切片吗?所以也许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)
(只是为了可读性而分解变量)。
推荐阅读
- python - 如何抓取网页的其他页面
- python - 乘法表(“时间表”)中的 Python 素数检查器
- ios - iOS Fido2 BLE 身份验证器注册响应问题
- android - 如何在我的数据库自动更改时刷新列表而无需用户在 android 项目中执行刷新
- ruby-on-rails - 获取二维数组之间的差异
- sql - 这个语句是如何执行的
- sas - 如何将数字和字符的组合拆分为多列
- c++ - C++:从 C++ 脚本内部触发存储在我机器上的 python 脚本
- r - 在 rmarkdown 中,可以获取该块的 R 代码中的块 ID 吗?
- c# - 在 C# 中使用 Selenium 进行测试 - 我需要测试更改 XPath 的网站