一、基本绘画流程
1、创建画布和子图
构建一张空白的画布,可以选择画布划分多个部分。
p1 = plt.figure(figsize=(8,6), dpi=80) # 确定画布大小
ax1 = p1.add_subplot(2, 1, 1) # 创建一个两行1列的子图,并开始绘制第一幅
函数名称 | 函数作用 |
plt.figure | 创建一个空白画布,可以指定画布大小,像素。 |
figure.add_subplot | 创建并选中子图,可以指定子图的行数,列数,与选中图片编号。 |
2、添加画布内容
函数名称 | 函数作用 |
plt.title | 在图形中添加标题,可指定标题的名称、位置、颜色、字体大小等参数。 |
plt.xlabel | 在当前图形中添加x轴名称,可以指定位置、颜色、字体大小等参数。 |
plt.ylabel | 在当前图形中添加y轴名称,可以指定位置、颜色、字体大小等参数。 |
plt.xlim | 指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识。 |
plt.ylim | 指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识。 |
plt.xticks | 指定x轴刻度的数目与取值。 |
plt.yticks | 指定y轴刻度的数目与取值。 |
plt.legend | 指定当前图形的图例,可以指定图例的大小、位置、标签。 |
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
data1=np.arange(0,6.2,0.2)
p1=plt.figure(figsize=(10,8),dpi=80)
ax1=p1.add_subplot(2,1,1)
plt.title("xylines")
plt.xlabel("x")
plt.ylabel("y")
plt.xlim((0,2))
plt.ylim((0,2))
plt.xticks([0,0.5,1,1.5,2])
plt.yticks(([0,0.2,0.4,0.6,0.8,1,1.2,1.4,1.6,1.8,2]))
plt.plot(data1,data1**3)
plt.plot(data1,data1**6)
plt.legend(["y=x^3","y=x^6"])
data2=np.arange(0,3.5,0.5)
ax2=p1.add_subplot(2,1,2)
plt.title("y=ax+b")
plt.xlabel("rad1")
plt.ylabel("y")
plt.xlim((0,3))
plt.ylim((0,10))
plt.xticks([0,0.5,1,1.5,2,2.5,3])
plt.yticks(([1,2,3,4,5,6,7,8,9,10]))
plt.plot(data2,data2*3+1)
plt.plot(data2,data2*2+3)
plt.legend(["rad1*3+1","rad1*2+3"])
plt.show()
3、绘制图形
①plot折线图
matplotlib.pyplot.plot(*args, **kwargs)
参数名称 | 说明 |
x,y | 接收array。表示x轴和y轴对应的数据。无默认。 |
color | 接收特定string。指定线条的颜色。默认为None。 |
linestyle | 接收特定string。指定线条类型。默认为“-”。 |
marker | 接收特定string。表示绘制的点的类型。默认为None。 |
alpha | 接收0-1的小数。表示点的透明度。默认为None。 |
颜色缩写 | 代表的颜色 | 颜色缩写 | 代表的颜色 |
b | 蓝色 | m | 品红 |
g | 绿色 | y | 黄色 |
r | 红色 | k | 黑色 |
c | 青色 | w | 白色 |
②bar柱状图
matplotlib.pyplot.bar(left,height,width = 0.8,bottom = None,hold = None,data = None,** kwargs )
参数名称 | 说明 |
left | 接收array。表示x轴数据。无默认。 |
height | 接收array。表示x轴所代表数据的数量。无默认。 |
width | 接收0-1之间的float。指定直方图宽度。默认为0.8。 |
color | 接收特定string或者包含颜色字符串的array。表示直方图颜色。默认为None。 |
import matplotlib
import matplotlib.pyplot as plt
x=[3,9,5,12,7]
y=[2,11,7,4,8]
plt.bar(x,y)
plt.show()
③scatter散点图
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, alpha=None, **kwargs)
参数名称 | 说明 |
x,y | 接收array。表示x轴和y轴对应的数据。无默认。 |
s | 接收数值或者一维的array。指定点的大小,若传入一维array则表示每个点的大小。默认为None。 |
c | 接收颜色或者一维的array。指定点的颜色,若传入一维array则表示每个点的颜色。默认为None |
marker | 接收特定string。表示绘制的点的类型。默认为None。 |
alpha | 接收0-1的小数。表示点的透明度。默认为None。 |
④pie饼状图
matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, … )
参数名称 | 说明 | 参数名称 | 说明 |
x | 接收array。表示用于绘制撇的数据。无默认。 | autopct | 接收特定string。指定数值的显示方式。默认为None。 |
explode | 接收array。表示指定项离饼图圆心为n个半径。默认为None。 | pctdistance | 接收float。指定每一项的比例和距离饼图圆心n个半径。默认为0.6。 |
labels | 接收array。指定每一项的名称。默认为None。 | labeldistance | 接收float。指定每一项的名称和距离饼图圆心多少个半径。默认为1.1。 |
color | 接收特定string或者包含颜色字符串的array。表示饼图颜色。默认为None。 | radius | 接收float,表示饼图半径,默认1 |
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文显示
labels=['空调','电视','冰箱','微波炉','热水器','洗衣机']
data=[5000,7000,6000,1000,4000,3000]
plt.pie(data,labels=labels,autopct='%1.1f%%')
plt.title("各电器第一季度销售图")
plt.show()
⑤boxplot箱线图
matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None,meanline=None, labels=None, … )
参数名称 | 说明 | 参数名称 | 说明 |
x | 接收array。表示用于绘制箱线图的数据。无默认。 | positions | 接收array。表示图形位置。默认为None。 |
notch | 接收boolean。表示中间箱体是否有缺口。默认为None。 | widths | 接收scalar或者array。表示每个箱体的宽度。默认为None。 |
sym | 接收特定sting。指定异常点形状。默认为None。 | labels | 接收array。指定每一个箱线图的标签。默认为None。 |
vert | 接收boolean。表示图形是横向纵向或者横向。默认为None。 | meanline | 接收boolean。表示是否显示均值线。默认为False。 |
import numpy as np
import matplotlib.pyplot as plt
# 生成五十个标准正态分布随机数
data=np.random.normal(size=50,loc=0,scale=1)
plt.boxplot(data,sym='*',whis=0.1)
plt.show()
4、保存或展示图片
函数名称 | 函数作用 |
plt.savefig | 保存绘制的图片,可以指定图片的分辨率、边缘的颜色等参数。 |
plt.show | 在本机显示图形。 |
二、设置pyplot动态的rc参数
使用rc配置文件来定义图形的各种默认属性,例如视图窗口大小,每英寸点数,线条宽度颜色样式,坐标轴,坐标,网格属性,文本,字体等等。
plt.rcParams['font.sans-serif'] = 'SimHei' #设置中文显示
plt.rcParams['axes.unicode_minus'] = False #正常显示负号
plt.rcParams['lines.linewidth'] = 5 #设置线条宽度
plt.rcParams['lines.color'] = 'red' #设置线条颜色
plt.rcParams['lines.linestyle'] = '-' #设置线条样式
rc参数名称 | 解释 | 取值 |
lines.linewidth | 线条宽度 | 取0-10之间的数值,默认为1.5。 |
lines.linestyle | 线条样式 | 可取“-”“--”“-.”“:”四种。默认为“-”。 |
lines.marker | 线条上点的形状 | 可取“o”“D”“h”“.”“,” “S”等20种,默认为None。 |
lines.markersize | 点的大小 | 取0-10之间的数值,默认为1。 |
linestyle取值 | 意义 | linestyle取值 | 意义 |
- | 实线 | -. | 点线 |
-- | 长虚线 | : | 短虚线 |
marker取值 | 意义 | marker取值 | 意义 |
‘o’ | 圆圈 | ‘.’ | 点 |
‘D’ | 菱形 | ‘s’ | 正方形 |
‘h’ | 六边形1 | ‘*’ | 星号 |
‘H’ | 六边形2 | ‘d’ | 小菱形 |
‘-’ | 水平线 | ‘v’ | 一角朝下的三角形 |
‘8’ | 八边形 | ‘<’ | 一角朝左的三角形 |
‘p’ | 五边形 | ‘>’ | 一角朝右的三角形 |
‘,’ | 像素 | ‘^’ | 一角朝上的三角形 |
‘+’ | 加号 | ‘\’ | 竖线 |
‘None’ | 无 | ‘x’ | X |