python - tutorial - matplotlib شرح




جعل Matplotlib تسميات القراد حجم الخط أصغر (6)

في الشكل matplotlib ، كيف يمكنني جعل حجم الخط الخاص بتسميات tick باستخدام ax1.set_xticklabels() أصغر؟

علاوة على ذلك ، كيف يمكن تدويرها من الوضع الأفقي إلى الرأسي؟


plt.tick_params (محور = "كلا" ، والتي = "ثانوي" ، تسميات = 12)


بدلاً من ذلك ، يمكنك فقط القيام بما يلي:

import matplotlib as mpl
label_size = 8
mpl.rcParams['xtick.labelsize'] = label_size 

في الإصدارات الحالية من Matplotlib ، يمكنك القيام بـ axis.set_xticklabels(labels, fontsize='small') .


لتحديد حجم الخط والدوران في نفس الوقت ، جرب هذا:

plt.xticks(fontsize=14, rotation=90)

هناك طريقة أبسط في الواقع. لقد وجدت:

import matplotlib.pyplot as plt
# We prepare the plot  
fig = plt.figure(1)
# We define a fake subplot that is in fact only the plot.  
plot = fig.add_subplot(111)

# We change the fontsize of minor ticks label 
plot.tick_params(axis='both', which='major', labelsize=10)
plot.tick_params(axis='both', which='minor', labelsize=8)

هذا فقط الإجابات على حجم جزء label من سؤالك رغم ذلك.


يرجى ملاحظة أن الإصدارات الأحدث من MPL لها اختصار لهذه المهمة. يظهر مثال في الإجابة الأخرى على هذا السؤال: https://.com/a/11386056/42346

الرمز أدناه هو لأغراض توضيحية وقد لا يكون بالضرورة ملائماً.

import matplotlib.pyplot as plt
import numpy as np

def xticklabels_example():
    fig = plt.figure() 

    x = np.arange(20)
    y1 = np.cos(x)
    y2 = (x**2)
    y3 = (x**3)
    yn = (y1,y2,y3)
    COLORS = ('b','g','k')

    for i,y in enumerate(yn):
        ax = fig.add_subplot(len(yn),1,i+1)

        ax.plot(x, y, ls='solid', color=COLORS[i]) 

        if i != len(yn) - 1:
            # all but last 
            ax.set_xticklabels( () )
        else:
            for tick in ax.xaxis.get_major_ticks():
                tick.label.set_fontsize(14) 
                # specify integer or one of preset strings, e.g.
                #tick.label.set_fontsize('x-small') 
                tick.label.set_rotation('vertical')

    fig.suptitle('Matplotlib xticklabels Example')
    plt.show()

if __name__ == '__main__':
    xticklabels_example()







matplotlib