2012-09-15 13 views
6

में डैश लम्बाई कैसे सेट कर सकता हूं मै मैटलप्लिब में कुछ समोच्च भूखंड बना रहा हूं और डैश की लंबाई बहुत लंबी है। बिंदीदार रेखा भी अच्छी नहीं लगती है। मैं मैन्युअल रूप से डैश की लंबाई निर्धारित करना चाहता हूं। जब मैं plt.plot() का उपयोग करके एक साधारण साजिश बना रहा हूं, तो मैं सटीक डैश लंबाई निर्धारित कर सकता हूं, हालांकि मैं समझ नहीं पा रहा हूं कि एक समोच्च साजिश के साथ एक ही चीज़ कैसे करें।मैं मैटलप्लिब कॉन्टूर प्लॉट

मुझे लगता है कि निम्नलिखित कोड काम करना चाहिए, लेकिन मैं त्रुटि मिलती है:

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() 
:

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 

यहाँ मैं क्या कर रहा हूँ का एक नमूना, एमपीएल उदाहरण से अनुकूलित है

धन्यवाद!

उत्तर

9

लगभग।

यह है:

for c in CS.collections: 
    c.set_dashes([(0, (2.0, 2.0))]) 

आप एक print c.get_dashes() रखा था वहाँ हैं, तो आप को पता चला है | (यह मैं क्या किया है)।

शायद लाइन शैली की परिभाषा थोड़ा बदल गई है, और आप पुराने उदाहरण से काम कर रहे थे।

collections documentation इस में क्या कहना है:

  • set_dashes(ls)

    alias for set_linestyle

  • set_linestyle(ls)

    Set the linestyle(s) for the collection.

    ACCEPTS: [‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (offset, on-off-dash-seq) ]

तो [(0, (2.0, 2.0))] में, 0 ऑफसेट है, और फिर टपल पर बंद दोहरा पैटर्न है।

+0

बहुत बहुत धन्यवाद! मैंने (ऑफसेट, (ऑन, ऑफ)) प्रारूप भी थक गया, लेकिन मुझे एहसास नहीं हुआ कि मुझे स्क्वायर ब्रैकेट के अंदर कोष्ठक की आवश्यकता है। मेरे भूखंड अब भयानक लग रहे हैं। तुमने मेरा दिन बना दिया। धन्यवाद, दान – DanHickstein

संबंधित मुद्दे