سؤال

لذلك ، يبدو أنه لا يمكن للمرء أن يفعل ما يلي (يرفع خطأً ، منذ ذلك الحين axes ليس لديه ملف set_linewidth طريقة):

axes_style = {'linewidth':5}
axes_rect = [0.1, 0.1, 0.9, 0.9]

axes(axes_rect, **axes_style)

ويتعين عليه استخدام الخدعة القديمة التالية بدلاً من ذلك:

rcParams['axes.linewidth'] = 5 # set the value globally

... # some code

rcdefaults() # restore [global] defaults

هل هناك طريقة سهلة / نظيفة (قد يكون أحدهم قد تم تعيينه x- و y- معلمات المحاور بشكل فردي ، إلخ)؟

ملاحظة إذا كان لا ، لماذا؟

هل كانت مفيدة؟

المحلول

الجواب أعلاه لا يعمل ، كما هو موضح في التعليقات. أقترح استخدام العمود الفقري.

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)

# you can change each line separately, like:
#ax.spines['right'].set_linewidth(0.5)
# to change all, just write:

for axis in ['top','bottom','left','right']:
  ax.spines[axis].set_linewidth(0.5)

plt.show()
# see more about spines at:
#http://matplotlib.org/api/spines_api.html
#http://matplotlib.org/examples/pylab_examples/multiple_yaxis_with_spines.html

نصائح أخرى

plt.setp(ax.spines.values(), linewidth=5)

نعم ، هناك طريقة سهلة ونظيفة للقيام بذلك.

الدعوةAxhline' و 'Axvline"من مثيل المحور يبدو أن التقنية المعتمدة في وثائق MPL.

في أي حال ، يكون الأمر بسيطًا ويمنحك تحكمًا جيدًا في ظهور المحاور.

على سبيل المثال ، سيقوم هذا الرمز بإنشاء مؤامرة ولون اللون الأخضر المحور X ويزيد من عرض خط المحور X من القيمة الافتراضية لـ "1" إلى قيمة "4" ؛ المحور Y هو اللون الأحمر اللون ويتم زيادة عرض خط المحور ص من "1" إلى "8".

from matplotlib import pyplot as PLT
fig = PLT.figure()
ax1 = fig.add_subplot(111)

ax1.axhline(linewidth=4, color="g")        # inc. width of x-axis and color it green
ax1.axvline(linewidth=4, color="r")        # inc. width of y-axis and color it red

PLT.show()

تقبل دالة Axhline/Axvline وسيطات إضافية يجب أن تسمح لك بالقيام بأي ما تريده من الناحية الجمالية ، وخاصة أي من خصائص ~ matplotlib.lines.line2d هي kwargs صالحة (على سبيل المثال ، 'alpha' ، 'linestyle' ، capstyle ، JoinStyle).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top