كيف أقول Matplotlib أنني انتهيت من المؤامرة؟
-
09-09-2019 - |
سؤال
مؤامرات التعليمات البرمجية التالية إلى اثنين بوستسكريبت (.s) الملفات، ولكن المرء الثاني يحتوي على كل من الخطوط.
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.subplot(111)
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("first.ps")
plt.subplot(111)
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
كيف يمكنني أن أقول matplotlib لبدء afresh للمؤامرة الثانية؟
المحلول
يمكنك استخدام figure
لإنشاء مؤامرة جديدة، على سبيل المثال، أو استخدام close
بعد المؤامرة الأولى.
نصائح أخرى
هناك أمر واضح من الشكل، وينبغي أن يفعل ذلك من أجلك:
plt.clf()
إذا كان لديك فرق فرعية متعددة في نفس الرقم
plt.cla()
مسح المحاور الحالية.
كما هو مذكور من ديفيد كورنابو، استخدم الشكل ().
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.figure()
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("first.ps")
plt.figure()
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
أو الفرعية (121) / فرحة فرعية (122) لنفس المؤامرة، موقف مختلف.
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.subplot(121)
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.subplot(122)
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
فقط ادخل plt.hold(False)
قبل الأول plt.plot، ويمكنك التمسك برمزك الأصلي.
إذا كنت تستخدم Matplotlib بشكل تفاعلي، على سبيل المثال في تطبيق ويب، (مثل ipython) ربما تبحث عنه
plt.show()
بدلا من plt.close()
أو plt.clf()
.
إذا كان لا أحد منهم يعملون ثم تحقق من ذلك .. قل إذا كان لديك خواص X و Y من البيانات على طول المحور المعني. ثم تحقق من الخلية (Jupyter) التي قمت بتهيئة x و y إلى فارغة. هذا لأنه، ربما كنت تلبي البيانات إلى x و y دون إعادة تهيئة لهم. لذلك المؤامرة لديها بيانات قديمة جدا. لذلك تحقق من ذلك ..