首页 > 其他分享 >Matplotlib绘制透明背景的折线图

Matplotlib绘制透明背景的折线图

时间:2022-12-04 15:56:54浏览次数:42  
标签:plt bold Matplotlib fontweight fontsize 折线图 绘制 legend

Matplotlib是Python中最著名的绘图库,使用matplotlib.pyplot来绘制论文实验部分所需的折线图。

基础知识

所涉及到的要素有:

  1. 一个figure包含两个子图,用subplot实现
  2. 图片直接生成展示或者保存成png格式,用plt.show()或者plt.savefig()
  3. 使用plt.savefig('./IoU.png', format='png', transparent=True)保存图片为透明背景。
  4. 折线图的画法,点、线形状、颜色,参考Matplotlib点、线形状及颜色
  5. 图的标题,图的坐标轴刻度,x、y轴标签
  6. 图的标注,用plt.legend()

代码实现

具体代码如下:

# -*- coding: utf-8 -*-
"""
PROJECT_NAME: PLOT 
FILE_NAME: article 
AUTHOR: welt 
E_MAIL: [email protected]
DATE: 2022/11/29 
"""

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False  # 显示负号
data = pd.read_csv(r'Kappa.csv')

x = np.array(data['Step'])
Res_UNet = np.array(data['Res-UNet'])
U_Net = np.array(data['U-Net'])
DeeplabV3 = np.array(data['DeeplabV3'])

# label在图示(legend)中显示。若为数学公式,则最好在字符串前后添加"$"符号
# color:b:blue、g:green、r:red、c:cyan、m:magenta、y:yellow、k:black、w:white、、、
# 线型:-  --   -.  :    ,
# marker:.  ,   o   v    <    *    +    1
plt.figure(figsize=(6, 3))
plt.grid(linestyle="--")  # 设置背景网格线为虚线
ax = plt.gca()
ax.spines['top'].set_visible(False)  # 去掉上边框
ax.spines['right'].set_visible(False)  # 去掉右边框

plt.plot(x, Res_UNet, marker='.', color="#5684A6", label="Res-UNet", linewidth=1)
plt.plot(x, U_Net, marker='.', color="#799762", label="U-Net", linewidth=1)
plt.plot(x, DeeplabV3, marker='.', color="#CD332D", label="DeeplabV3", linewidth=1)

group_labels = ['0', '200', '400', '600', '800', '900']  # x轴刻度的标识
plt.xticks(x, fontsize=12, fontweight='bold')  # 默认字体大小为10
ax.set_xticks([0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000])
ax.set_xticklabels([0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000])
plt.yticks(fontsize=12, fontweight='bold')
plt.title("不同模型梯田的IoU对比", fontsize=12, fontweight='bold')  # 默认字体大小为12
plt.xlabel("Step(Batch)", fontsize=13, fontweight='bold')
plt.ylabel("IoU", fontsize=13, fontweight='bold')
plt.xlim(0, 900)  # 设置x轴的范围
plt.ylim(0.2, 1)

plt.legend()  # 显示各曲线的图例
plt.legend(loc=0, numpoints=1)
leg = plt.gca().get_legend()
ltext = leg.get_texts()
plt.setp(ltext, fontsize=12, fontweight='bold')  # 设置图例字体的大小和粗细
plt.tight_layout()

plt.savefig('./IoU.png', format='png', transparent=True)  
plt.show()

结果展示

绘制出的折线图如下所示:

IoU

标签:plt,bold,Matplotlib,fontweight,fontsize,折线图,绘制,legend
From: https://www.cnblogs.com/tangjielin/p/16950004.html

相关文章

  • 形状工具足球绘制
    第一步,点击形状工具,选择多边形,边数为6,填充无,描边为黑色,描边大小自己把控。绘制第一个然后按住alt进行复制,第二行后面改成黑色。绘制完给图层打组,并盖印图层使用椭......
  • OpenCV 绘制填充矩形
    OpenCV提供了填充多边形函数fillPoly,可以通过fillPoly绘制填充矩形:Matmat=Mat::zeros(1048,1048,CV_8UC3);//创建一个Matcv::PointrookPoints[1][4];......
  • H5 Canvas 越线绘制页面
    效果⚠因为使用的是斜率来处理的垂直逻辑tan,当为被除数为0时做了特殊处理,两点自由变换时到达零界点会有卡顿。推导开始复习初中二年级数学知识斜率k的公式:\(k=\df......
  • Canvas学习笔记(二)绘制矩形
    在Canvas中,矩形分为“描边”矩形和“填充”矩形两种。“描边”矩形在Canvas中,我们使用strokeStyle属性和strokeRect()方法配合使用来绘制一个“描边”矩形。语法:ctx.str......
  • Python数据分析(一)--Matplotlib学习
    Matplotlib库学习2.1Matplotlib库小测2.2Pyplot的绘图区域plt.subplot(nrows,ncols,plot_number)图表的整个绘图区域被分成numRows行和numCols列然后按......
  • Python+NumPy绘制常见曲线的方法详解_python
    一、利萨茹曲线二、计算斐波那契数列 三、方波方波可以近似表示为多个正弦波的叠加。任意一个方波信号都可以用无穷傅里叶级数来表示。需要累加很多项级数,且级数越......
  • python3使用matplotlib和seaborn生成带有扰动点的箱型图
    importcsvimportseabornassnsimportmatplotlib.pyplotasplt#解决中文不显示和负号不显示问题rc={'font.family':'MicrosoftYaHei','axes.unicode_......
  • Canvas学习笔记(一)绘制直线
    Canvas简介HTMLCanvas,说得简单一点,就是使用JavaScript操作Canvas元素绘制各种图形的技术。使用Canvas元素绘制图形大体需要三步:获取Canvas对象;获取上下文环......
  • 百度地图区域绘制面
    <template><divclass="mapContainer"><!--<divid="tMap"/>--><divid="tMap"ref="tMap"/></div></template><script>import{TDIMap,BaiduM......
  • origin绘制倒立双y轴图
    1,先选中正向表示的数据,画成柱状图 2.画倒立的第二张,选中数据,画图   更改成倒立形式,右键图2的y坐标,在刻度>>>>反转>>>>勾选反转 3.合并两张图,在右边工具栏......