nschloe/tikzplotlib

Contour not working

Arvendui opened this issue · 1 comments

I am having some issues when trying to produce a contour plot for tikz.

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib import cm,colors
import tikzplotlib

max_r = 20
N_vorfs = 500
scalings = np.linspace(0.1, 5.*np.pi, N_vorfs)

X, Y = np.meshgrid(scalings, 2.*np.arange(1, max_r+1)-1.)
Z = np.arange(max_r*N_vorfs).reshape(X.shape)

fig, axs = plt.subplots(2, 1, gridspec_kw={'height_ratios': [3, 1]})
axs[0].contour(X, Y, Z)
print(tikzplotlib.get_tikz_code())
plt.show()

The errors are

Traceback (most recent call last):
  File ".../to_pgfplot.py", line 19, in <module>
    print(tikzplotlib.get_tikz_code())
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/tikzplotlib/_save.py", line 209, in get_tikz_code
    data, content = _recurse(data, figure)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/tikzplotlib/_save.py", line 353, in _recurse
    data, children_content = _recurse(data, child)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/tikzplotlib/_save.py", line 378, in _recurse
    data, cont = _draw_collection(data, child)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/tikzplotlib/_save.py", line 319, in _draw_collection
    return _path.draw_pathcollection(data, child)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/tikzplotlib/_path.py", line 214, in draw_pathcollection
    p = obj.get_paths()[0]
IndexError: list index out of range

Original post

Hi, it may be worth starting with a simpler example. I get this exported (one contour line for data=100 and a known bounding box):

        contours = axis.contour(data, [100], origin='lower',
                               extent=(bbox.xmin, bbox.xmax, bbox.ymin, bbox.ymax),
                               colors='red')
        plt.clabel(contours, inline=1, fontsize=10)