matplotlib学习笔记(一)


    PYthon中的matplotlib将简单地为论文实验中需要的loss图和其他实验结果图提供可视化和分析工具。因此,本文目的为简单地学会读取数据、画图、简单美化实验图。以提供案例为核心内容。主要参考黑马程序员的视频: https://www.bilibili.com/video/BV1hx411d7jb?p=9&spm_id_from=pageDriver

基础操作

保存

from matplotlib import pyplot as plt
import numpy as np

x = range(2,26,2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

# 设置图片大小
plt.figure(figsize=(20,8),dpi=80)
# 绘图
plt.plot(x,y)
# 保存
plt.savefig("./t1.png")

效果一

刻度

# 设置x轴的刻度
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
plt.xticks(x)
# plt.xticks(range(4,25,1))
# 想要密集一些,传列表
_xtick_labels = [i/2 for i in range(2,49)]
plt.xticks(_xtick_labels[::3])
# max_y取不到
plt.yticks(range(min(y),max(y)+1))
plt.show()

2

练习1:设置中文显示、设置轴步长和描述

# 练习1:设置中文显示、设置轴步长和描述
# 相关链接:https://blog.csdn.net/lw_power/article/details/82994762
from matplotlib import pyplot as plt
import random
import matplotlib

# 方法二
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname='C:/Windows/Fonts/AdobeFangsongStd-Regular.otf', size=16)

# 方法一__用不了,提示large不能转换为float
# Windows和Linux设置字体的方式
# font = {'family' : 'MicroSoft YaHei',
#         'weight' : 'bold',
#         'size' : 'large'}
# matplotlib.rc("font", **font)
# matplotlib.rc("font", family='MicroSoft YaHei', weight="blod")

# 要显示的数据和对应label
x = range(0, 120)
y = [random.randint(20,35) for i in range(120)]

# 扩大图像画板的像素值
plt.figure(figsize=(20,8),dpi=80)
# 加入画板
plt.plot(x,y)

# 调整x轴的刻度
_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
# 取步长,数字和字符串一一对应,数据的长度一样
# rotation旋转角度
plt.xticks(x[::4], _xtick_labels[::4], rotation=45)
plt.xticks(x[::4], _xtick_labels[::4], rotation=45,fontproperties=my_font)

# 添加描述信息
plt.xlabel("时间",fontproperties=my_font)
plt.ylabel("温度 单位(℃)",fontproperties=my_font)
plt.xlabel("10点到12点每4分钟的气温变化情况",fontproperties=my_font)

plt.show()

3

练习2:绘制网格

# 练习2:绘制网格
from matplotlib import pyplot as plt
import random
import matplotlib
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname='C:/Windows/Fonts/AdobeFangsongStd-Regular.otf', size=16)

a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b = [1,0,3,1,2,2,3,3,2,1 ,2,1,1,1,1,1,1,1,1,1]

y_1 = a
x = range(11,31)

# 设置图形大小
plt.figure(figsize=(20,8),dpi=80)
# 添加进图
plt.plot(x,y_1)
# 设置x轴刻度
_xtick_labels = ["{}岁".format(i) for i in x]
plt.xticks(x, _xtick_labels, fontproperties=my_font)
plt.yticks(range(0,9))
# 绘制网格
# 调整刻度稀疏度可以通过调整x,y轴数量
# alpha透明度0~1
plt.grid(alpha=0.4)

# 展示
plt.show()     

2

练习3:多线,图例

# 练习3:多线,图例
# 想要复杂的图形可以去官方demo查看
from matplotlib import pyplot as plt
import random
import matplotlib
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname='C:/Windows/Fonts/AdobeFangsongStd-Regular.otf', size=16)

a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b = [1,0,3,1,2,2,3,3,2,1 ,2,1,1,1,1,1,1,1,1,1]

y_1 = a
y_2 = b
x = range(11,31)

# 设置图形分辨率大小
plt.figure(figsize=(20,8),dpi=80)


# 添加进图
# 可以进入函数查看接口输入数据
plt.plot(x,y_1,label="自己",color="orange",linestyle=':')
plt.plot(x,y_2,label="同桌",color="cyan",linestyle='-')

# 设置x轴刻度
_xtick_labels = ["{}岁".format(i) for i in x]
plt.xticks(x, _xtick_labels, fontproperties=my_font)
# plt.yticks(range(0,9))

# 绘制网格
plt.grid(alpha=0.4)

# 添加图例
plt.legend(prop=my_font,loc="upper right")

# 展示
plt.show()

'''
# 小结:
绘制了折线图(plt.plot)
设置了图片的大小和分辨率(plt.figure)
实现了图片的保存(plt.savefig)
设置了xy轴上的刻度和字符串(xticks)
解决了刻度稀疏和密集的问题(xticks)
设置了标题,xy轴的lable(title,xlable,ylable)
设置了字体(font_manager. fontProperties,matplotlib.rc)
在一个图上绘制多个图形(plt多次plot即可)
为不同的图形添加图例
'''

4

小结导图

导图1
导图2
导图3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值