Kontrol panjang unit tampilan `PlotRange`

Dec 30 2020

Jika saya memiliki contoh data yang diplot seperti:

ListPlot[{{-20, 2}, {-10, 1}, {10, 0.001}, {20, 0.0000001}, {80, 0.000000001}}, PlotRange -> {{-20, 80}, All}] 

Yang diplot memberi:

Bagaimana saya dapat menggunakan PlotRangeuntuk menampilkan sumbu x setiap 10 unit daripada setiap 20 unit sebagaimana secara default?

Jawaban

3 MarcoB Dec 30 2020 at 04:18

Di sini saya menggunakan Charting`ScaledTicks fungsi tidak berdokumen :

ListPlot[
 {{-20, 2}, {-10, 1}, {10, 0.001}, {20, 0.0000001}, {80, 0.000000001}},
 PlotRange -> {{-20, 80}, All},
 Ticks -> {
    Charting`ScaledTicks[{Identity, Identity}][-20, 80, {10, 2}], 
    Automatic}
]

Apa yang saya ketahui tentang fungsi ini kebanyakan saya pelajari di komentar untuk jawaban ini . Pendeknya:

Charting`ScaledTicks[{scalingFunction, inverseScalingFunction}][min, max, divisions]

di mana divisionsbisa berupa angka, atau {maximum number of major ticks, number of divisions between each pair of major ticks}, jadi spesifikasi yang saya gunakan di atas meminta tanda centang mayor berlabel setiap 10 unit, dengan satu tanda centang kecil di antara setiap tanda utama (yaitu, dua divisi di antara setiap tanda utama). Perhatikan bahwa terkadang perilaku perpecahan itu unik; Saya berasumsi bahwa itu menggunakan FindDivisionsatau serupa di belakang layar, yang selalu berusaha menemukan divisi "cantik" / "baik" menurut heuristik.