2014-10-28 8 views
6

नोट: इस 1.4.3 में तय हो गई है या बाद मेंSeaborn साथ matplotlib 1.4.2: काम नहीं कर रहा लाइन मार्करों


मैं Seaborn की साजिश रचने पैकेज का उपयोग करें और मैं सिर्फ matplotlib के नवीनतम संस्करण पर अपग्रेड। अब, डॉट प्रतीकों के साथ भूखंड अब प्रस्तुत नहीं करते हैं। कोड जो पहले कार्यात्मक था, अब खाली भूखंड बनाता है, लेकिन केवल जब सीबर्न आयात किया जाता है।

import matplotlib.pyplot as plt 
import matplotlib 
import numpy as np 

print matplotlib.__version__ 

matplotlib संस्करण:

1.4.2 

Seaborn बिना एक साजिश बनाएँ:

x = np.linspace(0,2,101) 
y = np.sin(2*np.pi*x) 
plt.plot(x,y,'.') 

sin function with dots at each data point

आयात Seaborn, संस्करण प्रिंट:

यहां कुछ नमूना कोड है
import seaborn as sns 
print sns.__version__ 

Seaborn संस्करण:

0.4.0 

Seaborn के साथ एक पंक्ति साजिश आयातित बनाएँ:

plt.plot(x,y,'-') 

sin function with a solid line connecting each data point

आयातित Seaborn के साथ एक डॉट साजिश बनाना कुल्हाड़ियों के एक खाली सेट देता है:

plt.plot(x,y,'.') 

an empty set of axes

सब कुछ ऊपर IPython नोटबुक में किया गया था, लेकिन मैं सिर्फ एक ही परिणाम के साथ स्पाइडर में निम्नलिखित की कोशिश की:

import matplotlib.pyplot as plt 
import matplotlib 
import numpy as np 

print matplotlib.__version__ 

x = np.linspace(0,2,101) 
y = np.sin(2*np.pi*x) 
plt.figure() 
plt.plot(x,y,'.') 

import seaborn as sns 
print sns.__version__ 
plt.figure() 
plt.plot(x,y,'-') 

plt.figure() 
plt.plot(x,y,'.') 

plt.show() 

क्या हो रहा है?

+0

मैं matplotlib 2.0.0 के साथ एक समान मुद्दा दिखाई दे रही है और समुद्र तट 0.6.0, हालांकि मेरे मामले में, प्लॉटस्टाइल '। 'ठीक काम करता है लेकिन प्लॉटस्टाइल' + 'नहीं करता है। – abeboparebop

उत्तर

3

ऐसा लगता है कि यह Matplotlib में एक बग के कारण है।

https://github.com/matplotlib/matplotlib/issues/3711

https://github.com/mwaskom/seaborn/issues/344

तुम सिर्फ कुछ समय के लिए डाउनग्रेड करने के लिए हो सकता है।

पीएस: डौग क्या हो रहा है।

+0

मैंने सीबर्न इश्यू थ्रेड पर समुद्री डाकू के कामकाज के बारे में एक नोट जोड़ा जो समय के लिए इस मुद्दे से बचना चाहिए। – mwaskom

+0

समुद्री डाकू मुद्दे धागे पर पोस्ट किया गया कार्यवाही समस्या हल करती है। बस दूसरों को वहां क्लिक करने के लिए, मैंने अपने समुद्री आयात आयात कॉल के बाद निम्नलिखित डाला: sns।set_context (आरसी = {'line.markeredgewidth': 0.1})। धन्यवाद डेरिक और mwaskom! – ollerend

+0

उन लोगों के लिए जो यहां समाप्त होते हैं लेकिन इस मुद्दे पर क्लिक नहीं करते हैं, इस बग के लिए एक वर्कअराउंड के साथ seaborn 0.5.1 जारी किया गया है। – mwaskom

0

(अन्य जवाब में GitHub लिंक में वर्णित) एक समाधान नहीं है स्पष्ट रूप से plot करने के लिए कॉल में markeredgewidth (या mew) स्थापित करने के लिए:

plt.plot(x,y,'.', mew=1) 
संबंधित मुद्दे