Matplotlib 整合与细节操作(样式、图例、风格、轴线、网格)

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/weixin_35757704/article/details/90057265

目录

1 一般配置

1.1 jupyter显示图像

1.2 线条样式

1.3 图像样式

1.3.1 图形标注

1.3.2 图像填充

1.3.3 子图

1.4 全局风格

2 特殊操作

2.1 坐标轴

扫描二维码关注公众号,回复: 6228773 查看本文章

2.1.1 隐藏 x/y 坐标轴

2.1.2 隐藏坐标刻度

2.1.3 隐藏坐标轴线

2.2 图像

2.2.1 增加网格

2.2.2 增加图例

参考资料


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

猜你喜欢

转载自blog.csdn.net/weixin_35757704/article/details/90057265