Controlar la longitud de la unidad de visualización de "PlotRange"
Si tengo un ejemplo de datos graficados como:
ListPlot[{{-20, 2}, {-10, 1}, {10, 0.001}, {20, 0.0000001}, {80, 0.000000001}}, PlotRange -> {{-20, 80}, All}]
Lo que trazó da:
¿Cómo puedo usar PlotRange
para mostrar el eje x cada 10 unidades en lugar de cada 20 unidades como es por defecto?
Respuestas
Aquí uso la Charting`ScaledTicks
función indocumentada :
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}
]
Lo que sé sobre esta función lo he aprendido principalmente en los comentarios a esta respuesta . En breve:
Charting`ScaledTicks[{scalingFunction, inverseScalingFunction}][min, max, divisions]
donde divisions
puede haber un número, o {maximum number of major ticks, number of divisions between each pair of major ticks}
, por lo que la especificación que utilicé anteriormente pide ticks principales etiquetados cada 10 unidades, con un tick menor entre cada uno de los principales (es decir, dos divisiones entre cada tick principal). Tenga en cuenta que a veces el comportamiento de las divisiones es peculiar; Supongo que utiliza FindDivisions
o similar detrás de escena, que siempre intenta encontrar divisiones "bonitas" / "buenas" de acuerdo con una heurística.