التحكم في الحانات عرض في Matplotlib مع بيانات شهريا
-
23-08-2019 - |
سؤال
عندما أرسم البيانات التي عينات شهريا مع أشرطة، عرضها رقيق للغاية. إذا قمت بتعيين XIS محور صغير إلى DayLocator ()، أستطيع أن أرى ضبط عرض الأشرطة مع 1 يوما، لكنني أود منهم ملء شهر كامل.
حاولت ضبط تحديد موقع القراد الطفيف على MonthLocator () دون تأثير.
تعديل
ربما سيكون مثالا أكثر وضوحا، وهنا ipython -pylab
مثال على ما أعنيه:
x = [datetime.datetime(2008, 1, 1, 0, 0),
datetime.datetime(2008, 2, 1, 0, 0),
datetime.datetime(2008, 3, 1, 0, 0),
datetime.datetime(2008, 4, 1, 0, 0),
datetime.datetime(2008, 5, 1, 0, 0),
datetime.datetime(2008, 6, 1, 0, 0),
datetime.datetime(2008, 7, 1, 0, 0),
datetime.datetime(2008, 8, 1, 0, 0),
datetime.datetime(2008, 9, 1, 0, 0),
datetime.datetime(2008, 10, 1, 0, 0),
datetime.datetime(2008, 11, 1, 0, 0),
datetime.datetime(2008, 12, 1, 0, 0)]
y = cos(numpy.arange(12) * 2)
bar(x, y)
هذا يعطي 12 قطعة واسعة بكسل، وأود أن يكونوا أوسع وتمتد من شهر إلى شهر.
المحلول
مجرد استخدام width
وسيطة الكلمات الرئيسية:
bar(x, y, width=30)
أو، نظرا لأن أشهر مختلفة لديها أعداد مختلفة من الأيام، لجعلها تبدو جيدة يمكنك استخدام تسلسل:
bar(x, y, width=[(x[j+1]-x[j]).days for j in range(len(x)-1)] + [30])
لا تنتمي إلى StackOverflow