Dua sumbu vertikal di plot yang sama
Seringkali untuk memudahkan analisis data eksperimental, hasil dengan dua sumbu vertikal perlu disajikan dalam plot yang sama dengan skala dan jarak yang berbeda antar tick.
Saya telah mencoba menemukan solusi untuk masalah ini, tetapi tidak ada cara yang memadai untuk mewujudkannya.
Overlay[{ListLogLinearPlot[...], ListLogLinearPlot[...]}]tidak berfungsi dengan baik dan juga tidak memungkinkan untuk menggunakannya seperti template.TwoAxisPlottidak sesuai karena perlu kompatibilitas dengan paket CustomTicks.
// Paket CustomTicks memungkinkan untuk menentukan secara akurat posisi LogTicks atau LinTicks minor dan mayor.
Apakah ada cara lain untuk menerapkan ini?
Terima kasih sebelumnya.
Ini kodenya.
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]
Jawaban
Anda dapat melakukannya dengan menggabungkan dua plot menggunakan 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"]
Memperbarui
Sekarang, asumsikan bahwa kita memiliki data yang ingin kita wakili dengan dua skala yang berbeda, misalkan faktor skalanya f, maka kita masih dapat melakukannya sebagai berikut
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"]
disini saya anggap faktor penskalaannya f=1/10