Dos ejes verticales en la misma parcela
Con frecuencia, para un análisis de datos experimentales conveniente, es necesario presentar los resultados con dos ejes verticales en la misma parcela con diferente escala y distancia entre marcas.
Intenté encontrar soluciones a este problema, pero no hay formas adecuadas de hacerlo.
Overlay[{ListLogLinearPlot[...], ListLogLinearPlot[...]}]no funciona correctamente y además no permite usarlo como plantilla.TwoAxisPlotno es apropiado debido a la necesidad de compatibilidad con el paquete CustomTicks.
// El paquete CustomTicks permite determinar con precisión la posición de LogTicks o LinTicks menores y mayores.
¿Hay otras formas de implementar esto?
Gracias por adelantado.
Aquí está el código.
Show[ListLogLinearPlot[data[[3]], PlotRange -> {{10^1.3, 10^6}, {738.35, 738.65}},
PlotStyle -> {Orange, PointSize[0.015]}, Frame -> True,
FrameLabel -> {"Var_1, a.u.", "Var_2, a.u.", None, None},
LabelStyle -> {FontSize -> 15, FontFamily -> "Helvetica", Black},
FrameStyle -> Thickness[0.001],
FrameTicksStyle -> Thickness[0.001],
FrameTicks -> {{LinTicks[CMj, CMn], None}, {LogTicks, None}}],
ImageSize -> 600]
Respuestas
Puede hacerlo combinando las dos parcelas usando CombinePlots
ResourceFunction["CombinePlots"][
Plot[x, {x, 0, 10}, Frame -> True,
FrameLabel -> {"common axis", "Scale-1", None, None}],
Plot[ Sin[x], {x, 0, 10}, Frame -> True, FrameStyle -> Red,
PlotStyle -> Red,
FrameLabel -> {"common axis", "Scale-2", None, None}],
"AxesSides" -> "TwoY"]
Actualizar
Ahora, suponga que tenemos datos que queremos representar con dos escalas diferentes, digamos que el factor de escala es f, entonces todavía podemos hacerlo de la siguiente manera
ResourceFunction["CombinePlots"][
ListLinePlot[Table[{x, 10 x}, {x, 0, 10}], Frame -> True,
PlotStyle -> Black,
FrameLabel -> {"common axis", "Scale-1", None, None},
FrameStyle -> {Directive[{Blue, FontFamily -> "Times", 15}],
Directive[{Black, FontFamily -> "Times", 15}]}],
ListLinePlot[ Table[{x, f 10 x} /. f -> 0.1, {x, 0, 10}],
Frame -> True, PlotStyle -> None,
FrameLabel -> {"common axis", "Scale-2", None, None},
FrameStyle -> Directive[{Red, FontFamily -> "Times", 15}]],
"AxesSides" -> "TwoY"]
aquí consideré que el factor de escala es f=1/10