Log secundário assinala no eixo X do DensityPlot

Sep 06 2020

Alguém poderia me ajudar a adicionar os tiques secundários do Log ao eixo X deste gráfico? Muito obrigado!

DensityPlot[
 20*y/(0.2 y + 0.8 x), {x, 1/10^10, 1/10^2}, {y, 1/10^9, 1/10^6}, 
 ScalingFunctions -> {"Log", "Log"}, Ticks -> {Automatic}, 
 ColorFunction -> "Rainbow"]

Eu tentei de várias maneiras, mas nenhuma funcionou. Ainda estou aprendendo isso. Obrigada.

Respostas

3 kglr Sep 06 2020 at 20:48
dp = DensityPlot[20*y/(0.2 y + 0.8 x), {x, 1/10^10, 1/10^2}, {y, 1/10^9, 1/10^6}, 
   ScalingFunctions -> {"Log", "Log"}, ColorFunction -> "Rainbow"];

Pós-processo dppara alterar o número padrão de marcações principais e secundárias ( {6,6}) {8,6}para os quadros inferior e superior:

Replace[dp, {vt : {_, _}, {bt : Charting`ScaledTicks[{Log, Exp}], 
    tt_}} :> {vt, {bt[#, #2, {8, 6}] &, tt[#, #2, {8, 6}] &}}, All]

Alternativamente,

{leftticks, rightticks} = #[{Log, Exp}][Log[1/10^9], Log[1/10^6], {6, 6}] & /@ 
    {Charting`ScaledTicks, Charting`ScaledFrameTicks};
{bottomticks, topticks} = #[{Log, Exp}][Log[1/10^10], Log[1/10^2], {8, 6}] & /@
    {Charting`ScaledTicks, Charting`ScaledFrameTicks};

Show[dp, FrameTicks -> {{leftticks, rightticks}, {bottomticks, topticks}}]