me puede sugerir la siguiente Ticks
Hack:
pl = Plot[Sin[x], {x, 0, 10}];
Reap[Rasterize[Show[pl, Ticks -> {Sow[{##}] &, Sow[{##}] &}],
ImageResolution -> 1]][[2, 1]]
=> {{-0.208333, 10.2083}, {-1.04167, 1.04167}}
El truco es que el verdadero PlotRange
está determinado por el frontend , no por el Kernel. Por lo tanto, debemos forzar a FrontEnd a representar los gráficos para que se evalúen las funciones de marcación. Este truco proporciona el PlotRange
completo con el valor explícito de PlotRangePadding
agregado.
Más solución general teniendo en cuenta la posibilidad de que pl
tiene valor no estándar de DisplayFinction
opción y que puede haber Axes
opción se ajusta a False
:
completePlotRange[plot_] :=
[email protected]@
Reap[Rasterize[
Show[plot, Ticks -> (Sow[{##}] &), Axes -> True,
DisplayFunction -> Identity], ImageResolution -> 1]]
En la página de documentación para PlotRange
bajo la "Más información" se puede leer una nota importante sobre AbsoluteOptions
: "AbsoluteOptions
da la forma explícita de PlotRange
especificaciones cuando Automatic
se los ajustes se dan "(resaltar es mío). Por lo tanto, parece que la Documentación no garantiza que AbsoluteOptions
dará valores correctos para PlotRange
cuando no sea Automatic
para todas las coordenadas.
¡Bingo! Esa es una respuesta más completa que la que acabo de dar arriba. – kkm
Eso es exactamente lo que estaba buscando. ¡Gracias! – Cassini
¿Cuál es su opinión sobre el simple ajuste de patrones 'PlotRange' en el' FullForm' de 'p'? He tenido problemas con 'AbsoluteOptions' en el pasado (quizás debido a que no entiendo cómo funciona), así que ahora tiendo a evitar usarlo en favor de la coincidencia de patrones de fuerza bruta como en mi respuesta. – acl