版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/weixin_35757704/article/details/90057265
目录
1 一般配置
1.1 jupyter显示图像
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
1.2 线条样式
需要绘制的线的样式:
plt.plot(
x,y,
# 线条
color='g', #线条颜色
linestyle='-.', # 线条样式
linewidth = 3.0, # 线条宽度
alpha = 0.4, # 线条透明度
# 线条上的关键点
marker = 'o', # 关键点标识
markerfacecolor='r', # 关键点颜色
markersize = 10, # 关键点样式大小
)
与原图无关的其他线:
# 水平参考线,与x轴平行
plt.axhline(
0, # 这条水平线的y坐标
color='grey', # 颜色
linewidth=2, # 线长
)
# 垂直参考线,与y轴平行
plt.axvline(
0, # 这条垂直线的x坐标
color='grey', # 颜色
linewidth=2, # 线长
)
1.3 图像样式
1.3.1 图形标注
plt.xlabel('xlabel',fontsize = 16) # x 坐标标注
plt.ylabel('ylabel',fontsize = 16) # y 坐标标注
plt.title('title') # 图像标题
# 备注
plt.text(x坐标,y坐标,'备注信息') # 在指定位置添加'备注信息'
plt.annotate('备注信息', # 这会出现一个文本和一个箭头
xytext=(x坐标,y坐标), # '备注信息'的x,y坐标
xy=(箭头x坐标,箭头y坐标), # 箭头指向的终点坐标
arrowprops = dict(
facecolor='r', # 箭头颜色
headlength= 5, # 箭头的"头"的长度
headwidth = 10, # 箭头的"头"的宽度
)
)
1.3.2 图像填充
plt.fill_between(x,y,color='填充颜色')
1.3.3 子图
第一种写法:
# subplot(abc)中的数字表示整体布局是 a行 b列的图,而当前这个图是第1个图
# 这里的 211 表示2行1列的 最后一个1表示的是子图当中的第1个图
plt.subplot(211)
plt.plot(x1,y2)
# 表示第2个图
plt.subplot(212)
plt.plot(x2,y2)
第二种写法:
fig,axes = plt.subplots(nrows = 2,ncols = 3)
# nrows 为子图的行数,ncols为子图的列数;例子中的子图就是2行3列
# 然后使用 axes[row][col] 绘图,方法与plot相同。
# 注:
# 如果子图排成了一行或一列,可以使用 axes[i] 来表示第i个子图
1.4 全局风格
这行代码可以显示出所有的风格:
plt.style.available
设置风格:
plt.style.use('风格')
2 特殊操作
2.1 坐标轴
2.1.1 隐藏 x/y 坐标轴
这项设置会隐藏坐标轴的刻度与一些取值点的数值。
fig = plt.gca()
fig.axes.get_xaxis().set_visible(False)
fig.axes.get_yaxis().set_visible(False)
2.1.2 隐藏坐标刻度
plt.tick_params(bottom='off',top='off',left = 'off',right='off')
2.1.3 隐藏坐标轴线
# 这里不能直接使用plt.spines[],而必须先得到ax
ax = plt.subplot(111)
# 例子中隐藏了上面和右面的坐标轴线
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
注:隐藏轴线之后刻度仍旧会保留
2.2 图像
2.2.1 增加网格
plt.grid()
2.2.2 增加图例
图例显示在图内:
plt.plot(x,y,lable='图例文本')
plt.legend(
# 默认图例会在右上角,一般设置为best
loc='best', # 设置图例位置
framealpha = 0.5, # 设置图例的透明度
)
图例显示在图外:
ax.legend(
loc='upper center', # 以哪里作为图例的中心点
bbox_to_anchor = (1.15,1) , # 偏移的百分比
ncol=1, # 图例要排成多少列
)
注:这里的 bbox_to_anchor = (x偏移量 , y偏移量)
如果设置为 (0.5,1.5), 指图例的位置在x轴50%的位置,y轴150%的位置,预测会是全图上方。
如果设置为 (1,1), 指图例的位置在x轴100%的位置,y轴100%的位置,预测会是右上角,且很靠近图形。
参考资料
python matplotlib中axes与axis的区别?:https://www.zhihu.com/question/51745620