python Matplotlib绘图基础

1.创建画布与子图

目录

1.创建画布与子图

2.添加画布内容

3.绘制的保存与显示


 Matplotlib所绘制的图形位于图片(Figure)对象中,绘图常见的方法及说明如表格:

Matplotlib绘图常用方法及说明
函数 函数作用
plt.figure 创建一个空白画布,可以指定画布大小
figure.add_subplot 创建并选中子图,可以指定子图行数、列数与选中图片编号

表中plt.figure的主要左右是构建一张空白的画布,并可以选择是否将整个画布分为多个区域,方便在同一幅图片上绘制多个图形。最简单的绘图可以省略plt.figure部分,而直接在默认的画布上进行图形绘制
例1.创建子图

import matplotlib.pyplot as plt
fig = plt.figure()
#不能使用空白的figure绘图,需要创建子图
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)

 例2.绘制子图
 

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax1.plot([1.5,2,3.5,-1,1.6])

         可以使用语句”fig,axes = plt.subplots(2,3)“创建一个新的图片,然后返回包含了已经成生的子图对象的NumPy数组。数组axes可以像二维数组那样方便地进行索引,如axes[0,1],也可以通过sharex和sharey表明子图分别有相同的X轴和Y轴

例3.创建子图序列

import matplotlib.pyplot as plt
fig,axes = plt.subplots(2,3)

例4.调整子图周围的间距

import matplotlib.pyplot as plt
import numpy as np
fig,axes = plt.subplots(2,2,sharex = True,sharey = True)
for i in range(2):
    for j in range(2):
        axes[i,j].hist(np.random.randn(500),bins=50,color='k',alpha=0.5)#直方图
plt.subplots_adjust(wspace = 0,hspace=0)

2.添加画布内容
 

 在画布上绘制图形,需要设置绘图的一些属性,如标题、轴标签等。其中的添加标签、添加坐标轴名称。绘制图形等步骤是并列的,没有先后顺序,但是添加图例必须要在绘制图形之后。Pyplot中添加各类标签和图例的函数看下表:

画布中属性设置常用的函数及其说明
函数 说明
plt.title 在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数
plt.xlabel 在当前图形中添加X轴名称,可以指定位置、颜色、字体等参数
plt.ylabel 在当前图形中添加Y轴名称,可以指定位置、颜色、字体等参数
plt.xlim 指定当前图形X轴的范围,只能确定一个数值区间
plt.ylim 指定当前图形Y轴的范围,只能确定一个数值区间
plt.xticks 指定X轴刻度的数目与取值
plt.yticks 指定Y轴刻度的数目与取值
plt.legend 指定当前图形的图例,可以指定图例的大小、位置、标签

例5.绘图时设置坐标轴属性

import matplotlib.pyplot as plt
import numpy as np
data = np.arange(0,1,0.01)
plt.title('my lines example')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(0,1)
plt.ylim(0,1)
plt.xticks([0,0.2,0.4,0.6,0.8,1])
plt.yticks([0,0.2,0.4,0.6,0.8,1])
plt.tick_params(labelsize=12)#刻度线标签的的大小
plt.plot(data,data**2)
plt.plot(data,data**3)
plt.legend(['y = x^2','y = x^3'])
plt.show()

 例6.包含子图绘制的基础语法

import matplotlib.pyplot as plt
import numpy as np
data = np.arange(0,np.pi*2,0.01)
fig1 = plt.figure(figsize = (9,7),dpi = 90)#确定画布大小
ax1 = fig1.add_subplot(1,2,1)#绘制第一幅子图
plt.title('my lines example')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(0,1)
plt.ylim(0,1)
plt.xticks([0,0.2,0.4,0.6,0.8,1])
plt.yticks([0,0.2,0.4,0.6,0.8,1])
plt.tick_params(labelsize=12)#刻度线标签的的大小
plt.plot(data,data**2)
plt.plot(data,data**3)
plt.legend(['y = x^2','y = x^3'])
ax1 = fig1.add_subplot(1,2,2)#绘制第二幅子图
plt.title('sin-cos')
plt.xlabel('x')
plt.ylabel('y')
plt.ylim(-1,1)
plt.xlim(0,np.pi*2)
plt.xticks([0,np.pi/2,np.pi,np.pi*3/2,np.pi*2])
plt.yticks([-1,-0.5,0,0.5,1])
plt.plot(data,np.sin(data))
plt.plot(data,np.cos(data))
plt.legend(['sin','cos'])
plt.show()

        图例是图中各种符号和颜色所代表内容与指标的说明。matplotlib中通过Legend函数绘制图例。关于plt.legend()的说明如下。

参数loc用于设置图例的位置,取值有:

0:'best' 4:  'lower right' 8:  'lower center'
1:  'upper right' 5:  'right' 9:  'upper center'
2:  'upper right' 6:  'center left' 10:  'center'
3:  'lower left 7: 'center right'

frontsize用于设置字体大小,常取值为int型指数。
 

常设置示例:

plt.legend(loc = 'best',frameon = False)
#去掉图例边框,推荐使用
plt.legend(loc = 'best',edgecolor = 'blue')
#设置边框颜色
plt.legend(loc = 'best',facecolor = 'blue')
#设置图例背景颜色,若无边框,参数无效

3.绘制的保存与显示
 

 绘图完成后,需要显示或保存。图形显示和保存的函数看表:

绘图显示和保存的函数
           函数                                        作用

plt.savefig

保存绘制的图片,可以指定图片的分辨率、边缘颜色等参数
plt.show 在本机显示图形

plt.savefig的参数选项:

figure.savefig选项及其说明
        选项                                         说明
fname 包含文件路径或Python文件型对象的字符串。图片格式是从文件扩展名中推断出来的(例如PDF格式的.pdf)
dpi 设置每英寸点数的分辨率,默认为100
facecolor,edgecolor 子图外的图形背景颜色,默认是'w'(白色)
format 文件格式('png','pdf','svg','ps'等)
bbox_inches 要保存的图片范围,设置为‘tight’则去除图片周围的空白

猜你喜欢

转载自blog.csdn.net/weixin_52797843/article/details/124511598