Matplotlab可视化学习笔记(一):如何绘制折线图

简介: 这篇博客介绍了如何使用Matplotlib库在Python中绘制折线图,包括常用颜色和线型、绘制多条折线图的方法、设置双y轴的技巧,以及如何保存和显示图表。

1.绘图常用颜色

代码值 具体颜色
‘b’ 蓝色
‘g’ 绿色
‘r’ 红色
‘y’ 黄色
‘k’ 黑色
‘w’ 白色
‘c’ 青色
‘m’ 品红色

2.绘图常用线性形状

代码值 具体形状
’o-‘ 实心圆
‘*-’ 星号
‘.-’ 圆点形
‘:’ 细虚线
‘+’ 加号
‘x’ 叉号
‘-’ 实线
‘–’ 粗虚线
‘s’ 方形
‘1’ 下三角
‘2’ 上三角
‘3’ 左三角
‘4’ 油三角
‘D’ 钻石
‘d’ 细钻石
‘|’ 短竖线
‘_’ 短横线

3.绘制多条折线图

3.1具体代码

import matplotlib.pyplot as plt
import numpy as np

epoch= np.arange(0,70,10)
acces = [0.65,0.78,0.79,0.85,0.90,0.95,0.98]
cls_loss = [0.06,0.07,0.075,0.085,0.09,0.095,0.099]
bbox_loss = [0.2,0.3,0.4,0.22,0.5,0.4,0.23]
landmark_loss = [0.9,0.8,0.6,0.5,0.4,0.3,0.2]
L2_loss = [0.1,0.2,0.3,0.35,0.25,0.3,0.1]

# 如果要显示中文或者负号就加入这两行
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 输出保存指定尺寸的图
plt.figure(figsize=(10, 5))
plt.plot(epoch, acces, 'o-', color='r', label='acc')
plt.plot(epoch, cls_loss, '1-', color='m', label='cls_loss')
plt.plot(epoch, bbox_loss, ':', color='b', label='bbox_loss')
plt.plot(epoch, landmark_loss, color='y', label='landmark_loss')
plt.plot(epoch, L2_loss, 'D-', color='g', label='L2_loss')

# 给折线图数据点加数值
for a, b in zip(epoch, acces):
    plt.text(a, b, '%.1f'%b, ha='center', va= 'bottom', fontsize=10)

# 使用自定义的样式文件
plt.style.use(('dark_background'))

plt.xlabel('epoches',fontsize=10)  # x轴表示
plt.ylabel('loss/acc',fontsize=10)  # y轴表示
plt.title("折线图",fontsize=10)  # 图标标题表示
plt.grid() # 显示网格
plt.legend(loc=1)
"""
 每条折线的label显示
 0:'best'
 1: 'upper right'
 2: 'upper left'
 3:'lower left'
 4: 'lower right'
 5: 'right'
 6: 'center left'
 7: 'center right'
 8: 'lower center'
 9: 'upper center'
 10: 'center'
"""
# 直接设置y轴上的每一个刻度值
# plt.yticks([0, 0.4, 0.8, 1.2, 1.4, 1.6, 1.8, 2.0])
# 设置横纵坐标的刻度范围,强行将x轴和y轴设置为下面的范围 合理分布每段距离
plt.xlim((0, 70))
plt.ylim((0, 1))
#######################

plt.tight_layout()
plt.savefig('testP.jpg',dpi=500,bbox_inches = 'tight')  # 保存图片,路径名为test.jpg
plt.show()  # 显示图片
plt.close()

3.2运行结果

在这里插入图片描述

4.设置双y轴和一个x轴的折线图

4.1具体代码

def plot_loss_and_lr(train_loss, learning_rate):
    try:
        x = list(range(len(train_loss)))
        fig, ax1 = plt.subplots(1, 1)
        ax1.plot(x, train_loss, 'r', label='loss')
        ax1.set_xlabel("step")
        ax1.set_ylabel("loss")
        ax1.set_title("Train Loss and lr")
        plt.legend(loc='best')

        ax2 = ax1.twinx()
        ax2.plot(x, learning_rate, label='lr')
        ax2.set_ylabel("learning rate")
        ax2.set_xlim(0, len(train_loss))  # 设置横坐标整数间隔
        plt.legend(loc='best')

        handles1, labels1 = ax1.get_legend_handles_labels()
        handles2, labels2 = ax2.get_legend_handles_labels()
        plt.legend(handles1 + handles2, labels1 + labels2, loc='upper right')

        fig.subplots_adjust(right=0.8)  # 防止出现保存图片显示不全的情况
        fig.savefig('./loss_and_lr{}.png'.format(datetime.datetime.now().strftime("%Y%m%d-%H%M%S")))
        plt.close()
        print("successful save loss curve! ")
    except Exception as e:
        print(e)
# 传入两个列表 append添加
plot_loss_and_lr(train_loss, learning_rate)

4.2运行结果

在这里插入图片描述

中文显示
plt.rcParams[‘font.sans-serif’]=[‘FangSong’]
负号显示
plt.rcParams[‘axes.unicode_minus’]=False

觉得有用点赞支持一下❤

目录
相关文章
|
2天前
|
数据可视化 Python
Matplotlab可视化学习笔记(二):如何绘制柱状图
使用Matplotlib库在Python中绘制柱状图的教程,包括基本的柱状图绘制和多条柱状图的绘制方法。
8 1
Matplotlab可视化学习笔记(二):如何绘制柱状图
|
4月前
|
数据可视化 Python
利用Matplotlib绘制数据可视化图表
**摘要:** 本文介绍了Python的绘图库Matplotlib在数据分析和科学计算中的重要性。Matplotlib是一个开源库,提供类似MATLAB的接口,支持静态、动态和交互式图表的绘制,并能保存为多种格式。文章详细讲解了Matplotlib的基本用法,包括安装库、导入模块和绘制简单折线图的步骤。还展示了如何绘制柱状图并添加数据标签。通过这些例子,读者可以了解如何利用Matplotlib进行数据可视化,并对其进行自定义以满足特定需求。
47 4
|
5月前
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程(下)
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程
340 0
|
5月前
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程(上)
【SPSS】基础图形的绘制(条形图、折线图、饼图、箱图)详细操作过程
388 0
|
数据可视化 数据处理
R绘图案例|基于分面的折线图绘制
R绘图案例|基于分面的折线图绘制
271 0
|
SQL 数据可视化 算法
数据可视化—绘制简单的折线图
在使用matplotlib绘制简单的折线图之前首先需要安装matplotlib,直接在pycharm终端pip install matplotlib即可
248 0
数据可视化—绘制简单的折线图
|
数据可视化 JavaScript 索引
【D3使用教程】(2) 绘制柱状图与散点图
【D3使用教程】(2) 绘制柱状图与散点图
389 0
【D3使用教程】(2) 绘制柱状图与散点图
|
数据可视化 Python
数据可视化之matplotlib绘制饼状图
数据可视化之matplotlib绘制饼状图 常常为Python的数据可视化而痴迷,将数据进行可视化只需要掌握相关库的方法使用即可。流水线式的库式调用实现正是显示python强大的库的功能。我们可以绘制各种各样的数据图样式,对于数据的反应更加直观而准确。
427 0
数据可视化之matplotlib绘制饼状图
|
大数据 开发者
R 的基本图形—饼图| 学习笔记
快速学习 R 的基本图形—饼图
142 0
|
数据可视化 开发者 Python
常见图表及散点图| 学习笔记
快速学习常见图表及散点图
186 0