matplotlib图形设置

 
1)颜色,线条类型的设置

plt.plot(x,y, linestyle='--',color='g')    合并写为   plt.plot(x,y, ‘g--‘)

对数据点标记使用marker

plt.plot(randn(30).cumsum(), 'ko--')   拆分写为   plt.plot(randn(30).cumsum(), color='k', linestyle='dashed', marker='o')

2)图例的设置label,数据点连线的设置drawstyle='steps-post'

plt.figure()

data = randn(30).cumsum()

plt.plot(data, 'k--',  label='Default')

plt.plot(data, 'k-', drawstyle='steps-post', label='steps-post')

#设置图例位置为最佳

plt.legend(loc='best')

3)设置刻度,标签,坐标轴名称,标题

#刻度设置

plt.xticks()

plt.yticks()

fig = plt.figure(); ax = fig.add_subplot(1, 1, 1)

ax.plot(randn(1000).cumsum())

#set_xticks用来设置x轴刻度

ticks = ax.set_xticks([0, 250, 500, 750, 1000])

# set_xticklabel设置x轴标签,rotation设置旋转的角度

labels = ax.set_xticklabels(['one', 'two', 'three', 'four', 'five'],rotation=30, fontsize='small')

#设置标题

ax.set_title('My first matplotlib plot')

#设置x轴名称

ax.set_xlabel('Stages')

 

4)在图像上添加注释

crisis_data = [

    (datetime(2007, 10, 11), 'Peak of bull market'),

    (datetime(2008, 3, 12), 'Bear Stearns Fails'),

    (datetime(2008, 9, 15), 'Lehman Bankruptcy')]

for date, label in crisis_data:

       # annotate()在图像上增加注释的函数,xy表示增加注释的坐标,xytext是注释放置的坐标

ax.annotate(label, xy=(date, spx.asof(date) + 50), xytext=(date, spx.asof(date) + 200),

#arrowprops=dict(facecolor='black')是为了设置指示符号,颜色为黑色

arrowprops=dict(facecolor='black'),

#设置注释显示在左上方

    horizontalalignment='left', verticalalignment='top')

#设置X轴和Y轴的刻度范围

ax.set_xlim(['1/1/2007', '1/1/2011'])

ax.set_ylim([600, 1800])

 

5)画多边形,并保存

fig = plt.figure()

ax = fig.add_subplot(1, 1, 1)

rect = plt.Rectangle((0.2, 0.75), 0.4, 0.15, color='k', alpha=0.3)

circ = plt.Circle((0.7, 0.2), 0.15, color='b', alpha=0.3)

pgon = plt.Polygon([[0.15, 0.15], [0.35, 0.4], [0.2, 0.6]], color='g', alpha=0.5)

ax.add_patch(rect)

ax.add_patch(circ)

ax.add_patch(pgon)

 

保存下来:

fig.savefig('figpath.svg')

#图片类型设置,分辨率设置,图片周围空白设置

fig.savefig('figpath.png', dpi=400, bbox_inches='tight')

6)matplotlib配置

设置每张图片的默认大小

plt.rc('figure', figsize=(10, 10))

font_options={'family':'monospace',

              'weight':'bold','size':'small'}

plt.rc('font',**font_options)

原文地址:https://www.cnblogs.com/yongfuxue/p/10107300.html