[Python-es] Detección automática de "sobreescritura" en matplotlib

Kiko kikocorreoso en gmail.com
Lun Oct 19 10:31:58 EDT 2015


El 19 de octubre de 2015, 16:23, Jesus Cea <jcea en jcea.es> escribió:

> On 19/10/15 14:13, Kiko wrote:
> > En mpl, todo lo que se pinta es un objeto y se puede extraer sus
> > coordenadas. Puedes crear una función que inspecciones todo lo que se
> > grafica y establezca si mover algo en función de que esté encima o
> > debajo de otra cosa.
>
> Entiendo que puedes obtener el "bounding box" de un objeto. Esto es útil
> para cosas como las flechas y los números del ejemplo que comentaba,
> pero una linea diagonal de abajo a la izquierda a arriba a la derecha
> tendrá un "bound box" del gráfico entero.
>
> Una opción posible es dibujar las líneas a mano, punto a punto, y
> guardarme las coordenadas precisamente para poder ver colisiones con
> esos "bounding box" de los elementos más pequeños. Pero parece overkill.
>
> Me pregunto si hay alguna función en matplotlib que te diga si dos
> gráficos se intersecan o si un "bounding box" interseca una línea... No
> sé si el método "contains()" podría ayudar.
>
> Hay cosas peregrinas como:
> <
> https://stackoverflow.com/questions/8094374/python-matplotlib-find-intersection-of-lineplots
> >.
> Me pregunto si Matplotlib tiene algo nativo.
>

Creo que no.

Shapely sí que lo tiene [1]. Defines polilíneas y puedes obtener las
intersecciones de forma muy sencilla. Podrías usar Shapely para hallar las
intersecciones y cuando las tengas pintar como desees en mpl.

https://github.com/Toblerity/Shapely



>
> --
> Jesús Cea Avión                         _/_/      _/_/_/        _/_/_/
> jcea en jcea.es - http://www.jcea.es/     _/_/    _/_/  _/_/    _/_/  _/_/
> Twitter: @jcea                        _/_/    _/_/          _/_/_/_/_/
> jabber / xmpp:jcea en jabber.org  _/_/  _/_/    _/_/          _/_/  _/_/
> "Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
> "My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
> "El amor es poner tu felicidad en la felicidad de otro" - Leibniz
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20151019/b62b6011/attachment.html>


Más información sobre la lista de distribución Python-es