التحكم في الحانات عرض في Matplotlib مع بيانات شهريا

StackOverflow https://stackoverflow.com/questions/886716

  •  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])
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top