Я хочу создать точечную диаграмму с двумя различными наборами данных из DataFrame, где один из них заполнен маркерами круга, а другой - полыми маркерами круга, но оба цвета закодированы другим столбцом в DataFrame. Код, который я имею для этого графика:
plt.figure(figsize = (10,10))
plt.rcParams.update({'font.size': 30})
plt.errorbar(fullmergedf['ir_SFR-UV_corr'] , fullmergedf['PAB_L'] , yerr = fullmergedf['PAB_L_ERR'] , linestyle = 'None' , c = 'grey' )
plt.scatter(fullmergedf['ir_SFR-UV_corr'] , fullmergedf['PAB_L'] , s = 200 , c = fullmergedf['td_lmass'], cmap = 'coolwarm')
plt.scatter(fullmergedf['ir_SFR-ladder_total'] , fullmergedf['PAB_L'] , s = 200 , c = fullmergedf['td_lmass'], cmap = 'coolwarm' , markerfacecolor = 'none')
cb = plt.colorbar()
cb.set_label('Log$[M_{\odot}]$')
plt.ylabel("PaB L [erg/s]")
plt.xlabel("UV + IR Ladder-SFR [$M_{\odot}/yr$]")
plt.axis([min(fullmergedf['ir_SFR-ladder_total']) -10**-6 , max(fullmergedf['ir_SFR-ladder_total']) + 10**2 , min(fullmergedf['PAB_L']) - 10**36, max(fullmergedf['PAB_L']) + 10**41])
plt.xscale('log')
plt.yscale('log')
plt.show()
Я пытался изменить c = fullmergedf['td_lmass']
во втором plt.scatter()
на markeredgecolor = fullmergedf['td_lmass']
, но это не работает. Ни одно из решений, которые я видел, не делало полые маркеры с цветовой шкалой.