ควบคุมความยาวหน่วยแสดงผลของ "PlotRange"
หากฉันมีตัวอย่างข้อมูลที่พล็อตเช่น:
ListPlot[{{-20, 2}, {-10, 1}, {10, 0.001}, {20, 0.0000001}, {80, 0.000000001}}, PlotRange -> {{-20, 80}, All}]
ซึ่งพล็อตให้:
ฉันPlotRange
จะใช้เพื่อแสดงแกน x ทุกๆ 10 หน่วยแทนที่จะเป็นทุกๆ 20 หน่วยตามค่าเริ่มต้นได้อย่างไร
คำตอบ
ที่นี่ฉันใช้Charting`ScaledTicks
ฟังก์ชันที่ไม่มีเอกสาร:
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}
]
สิ่งที่ฉันรู้เกี่ยวกับฟังก์ชันนี้ฉันได้เรียนรู้ส่วนใหญ่ในความคิดเห็นของคำตอบนี้ ในระยะสั้น:
Charting`ScaledTicks[{scalingFunction, inverseScalingFunction}][min, max, divisions]
ที่divisions
สามารถเป็นตัวเลขหรือ{maximum number of major ticks, number of divisions between each pair of major ticks}
เพื่อให้สเปคที่ผมใช้ข้างต้นขอเห็บที่สำคัญที่มีป้ายกำกับทุก 10 หน่วยที่มีขีดเล็ก ๆ น้อย ๆ ในระหว่างแต่ละคนที่สำคัญ (เช่นสองฝ่ายระหว่างแต่ละเห็บหลัก) สังเกตว่าบางครั้งพฤติกรรมของการแบ่งแยกก็แปลก ๆ ฉันคิดว่ามันใช้FindDivisions
หรือคล้ายกันเบื้องหลังซึ่งมักจะพยายามหาหน่วยงานที่ "สวย" / "ดี" ตามฮิวริสติก