hacer gráfico de ejes cuadrados con escalas log2 en matplotlib

Me gustaría hacer un diagrama de dispersión de eje cuadrado con matplotlib. Normalmente usandoset_scale("log") funciona muy bien, pero me limita a log10. Me gustaría hacer la trama en log2. Vi la solución aquí: ¿Cómo producir un eje escalado exponencialmente?

pero es bastante complicado y no funciona si tiene 0 valores en sus matrices, lo cual hago. Simplemente me gustaría ignorarlos como hacen otras funciones numpy.

Por ejemplo

log2scatter(data1, data2)

where data1 y data2 contienen 0s deben tener una escala logarítmica en los ejes xey, con marcas espaciadas logarítmicas. Al igual que log10, excepto log2 ...

Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta