'PlotRange'의 표시 단위 길이 제어

Dec 30 2020

다음과 같은 플로팅 된 데이터의 예가있는 경우 :

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

플롯 된 내용은 다음과 같습니다.

PlotRange기본적으로 20 단위가 아닌 10 단위마다 x 축을 표시하는 데 어떻게 사용할 수 있습니까?

답변

3 MarcoB Dec 30 2020 at 04:18

여기에서는 문서화되지 않은 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휴리스틱에 따라 항상 "예쁜"/ "좋은"구분을 찾으려고하는 배후에서 또는 이와 유사한 것을 사용한다고 가정합니다 .