1. Figure
- Figure: 一个绘图的图窗,包含了一幅图的所有信息;
- Axes:图窗Figure里的画纸,一个Figure里可以有一个或多个Axes,一个Axes里面画一个子图;
- Axes中的属性:图里面用圆圈圈出来的所有属性:标题、坐标标签、线、散点……
2 属性预设
对整个图窗里的所有属性进行的设置,后期还可以单独得设置
- 设置中文显示
plt.rcParams['font.sans-serif']=['SimHei']
- 设置负号显示
matplotlib.rcParams['axes.unicode_minus']=False
- 字体设置:类型,如宋体;正or斜体;字体大小
plt.rcParams['font.family'] = 'STSong' # 宋体
plt.rcParams['font.style'] = 'italic' # 斜体,正体是normal
plt.rcParams['font.size'] = 12 # 字号
3 建立
- 建立Figure
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(12,8)) #12,8为图片长和宽
相关属性:
属性名 | 属性值 |
---|---|
dpi(分辨率) | 100(默认) |
facecolor(背景色) | ‘white’ |
edgecolor(边框色) | ‘white’ |
frameon | True(显示边框) |
- 建立Axes
方法一:快速便捷的排列(多个axes)
ax1 = fig.add_subplot(221)#2行2列第一个位置
ax2 = fig.add_subplot(222)#2行2列第一个位置
ax3 = fig.add_subplot(223)#2行2列第一个位置
ax4 = fig.add_subplot(224)#2行2列第4个位置
方法二:指定位置和大小
ax = fig.add_axes([0.1, 0.2, 0.3, 0.4])#在figure中x=0.1,y=0.2的位置,建立一个长0.3宽0.4的Axes
方法三:绘制一个axes,有5种任选,同时指定图像类型projection
ax = plt.axes(projection=cart_proj)
ax = fig.add_subplot(111, projection = '3d')
ax = fig.gca(projection = '3d')
ax = fig.subplots(1, 1, subplot_kw={'projection': proj})
fig, ax = plt.subplots(1, 1)
4 坐标轴设置
- x,y轴的范围
ax.set_xlim(x1, x2)
ax.set_ylim(y1, y2)
- 刻度and标签
ax.set_xticks([1,2,3,4])
ax.set_xticklabels(['a','b','c','d'])
# 或者
plt.xticks(x, ticks, rotation) # x是刻度,tick是对应的标签,rotation是旋转角度
ax.set_xticks(x, ticks, rotation)
注意嗷:因为一个Figure有可以有好多的axes。如果是ax.set_xticks就是对特定的那个axes设置属性。如果只有一个图片,就用plt也是一样的。其他属性设置同理。
- 坐标轴显示与否
ax.spines['top'].set_visible(False) # 上面的坐标轴不显示
ax.spines['right'].set_visible(False) # 右边的坐标轴不显示
- 坐标轴名称
ax.set_xlabel('x axis')
ax.set_ylabel('y axis')
- 坐标轴的位置
plt.axhline(0) # 设置x坐标轴在位置0处,y坐标轴就是axvline
5 绘图属性(颜色,线形,标记符号)
颜色 | 代码 | 线形 | 代码 | 标记 | 代码 |
---|---|---|---|---|---|
蓝 | ‘b’ | 实线 | - | 点 | . |
绿 | ‘g’ | 虚线 | – | x | x |
红 | ‘r’ | 虚点 | -. | 圆 | o |
青 | ‘c’ | 点线 | : | 三角 | v |
紫 | ‘p’ | 方块 | s | ||
黄 | ‘y’ | 星 | * | ||
黑 | ‘k’ | 加号 | + | ||
白 | ‘w’ | 菱形 | D |
实例:
ax.plot(x,y, color='k', linestyle='-', alpha=0.3)
ax.plot(x,y,'-k',alpha=0.3)
6 标题
ax.set_title('abc')
参数:
loc: {‘center’, ‘left’, ‘right’},设置标题显示的位置
pad: 设置标题距离图像上边缘距离
fontsize: 设置字体大小
color: 设置字体颜色
7 图例
设置图例:
ax.plot(x,y,label='我是图例')
显示图例:
ax.set_legend()
属性:
loc:lower right(右下角) / upper left(左上角) / best(自己调整的最佳位置)
fancybox = True 显示边框
framealpha = 1 边框透明度
shadow= True 阴影
borderpad=1边框宽度
8 网格
plt.grid(True)
9 注释文本
ax.text(x, y, label, rotation) # 若rotation为x,则文字与x轴平行,默认是正的