JuliaPy / JuliaPy/PyPlot.jl

get_legend_handles_labels() for errorbar plot not working properly

Abierto
#457 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Julia
Estrellas
488
Forks
90
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Related to https://github.com/JuliaPy/PyPlot.jl/issues/401.

I'm simply trying to reverse the order of the legend entries of two errorbar plots.

Pure python (from within Julia):
```julia
py"""
import matplotlib.pyplot as plt
import numpy as np
plt.errorbar(np.random.rand(10), np.random.rand(10), np.random.rand(10), label='first', marker='o', linestyle="")
plt.errorbar(np.random.rand(10), np.random.rand(10), np.random.rand(10), label='second', marker='o', linestyle="")
h,l = plt.gca().get_legend_handles_labels()
plt.legend(reversed(h),reversed(l), frameon=True)
"""
```
![image](https://user-images.githubusercontent.com/187980/64120070-91211480-cd9b-11e9-8c82-24c8ee6feb72.png)

Using PyPlot:
```julia
errorbar(rand(10), rand(10), rand(10), label="first", marker="o", linestyle="")
errorbar(rand(10), rand(10), rand(10), label="second", marker="o", linestyle="")
h,l = gca().get_legend_handles_labels()
legend(reverse(h),reverse(l), frameon=true)
```
![image](https://user-images.githubusercontent.com/187980/64120125-adbd4c80-cd9b-11e9-8634-5d9cfc393e3b.png)

Note that the handles are wrong (should be markers with error bars).

PyPlot + ugly fix:
```julia
errorbar(rand(10), rand(10), 0.1 .* rand(10), marker="o", linestyle="none", label="first")
errorbar(rand(10), rand(10), 0.1 .* rand(10), marker="o", linestyle="none", label="second")

py"""
import matplotlib.pyplot as plt
h, l = plt.gca().get_legend_handles_labels()
plt.legend(reversed(h), reversed(l), frameon=True)
"""
```
![image](https://user-images.githubusercontent.com/187980/64120207-de04eb00-cd9b-11e9-880d-f23e5773e972.png)

Presumably a PyObject conversion issue? In python, `h` is a container
```python
[,
]
```
In Julia I find
```julia
2-element Array{Tuple{PyObject,Tuple{PyObject,PyObject},Tuple{PyObject}},1}:
(PyObject , (PyObject , PyObject ), (PyObject ,))
(PyObject , (PyObject , PyObject ), (PyObject ,))
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.