Как установить длину тире на контурном графике matplotlib
Я делаю некоторые контурные графики в matplotlib, и длина штрихов слишком велика. Пунктирная линия также выглядит не очень хорошо. Я бы хотел установить длину тире вручную. Я могу установить точную длину тире, когда делаю простой график с использованием plt.plot (), однако я не могу понять, как сделать то же самое с контурным графиком.
Я думаю, что следующий код должен работать, но я получаю ошибку:
File "/Library/Python/2.7/site-packages/matplotlib-1.2.x-py2.7-macosx-10.8-intel.egg/matplotlib/backends/backend_macosx.py", line 80, in draw_path_collection
offset_position)
TypeError: failed to obtain the offset and dashes from the linestyle
Вот пример того, что я пытаюсь сделать, адаптированный из примеров MPL:
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
delta = 0.025
x = np.arange(-3.0, 3.0, delta)
y = np.arange(-2.0, 2.0, delta)
X, Y = np.meshgrid(x, y)
Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
# difference of Gaussians
Z = 10.0 * (Z2 - Z1)
plt.figure()
CS = plt.contour(X, Y, Z, 6, colors='k',linestyles='dashed')
for c in CS.collections:
c.set_dashes([2,2])
plt.show()
Спасибо!