数据可视化|实验一 绘图基础语法和常用参数

1.绘制函数“ y=x^2 ”与“ y=x ”图形

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize = (6, 6), dpi = 80)  # 创建画布。大小为 6 × 6 ,像素为 80
x = np.linspace(0, 1, 1000)
fig.add_subplot(2, 1, 1)  # 分为 2 × 1 图形阵,选择第 1 张图片绘图
plt.title('y=x^2 & y=x')  # 添加标题
plt.xlabel('x')  # 添加 x 轴名称‘ x ’
plt.ylabel('y')  # 添加 y 轴名称‘ y ’
plt.xlim((0, 1))  # 指定 x 轴范围( 0,1 )
plt.ylim((0, 1))  # 指定 y 轴范围( 0,1 )
plt.xticks([0, 0.3, 0.6, 1])  # 设置 x 轴刻度
plt.yticks([0, 0.5, 1])  # 设置 y 轴刻度
plt.plot(x, x ** 2)
plt.plot(x, x)
plt.legend(['y=x^2', 'y=x'])  # 添加图例
plt.savefig('./tmp/整体流程绘图.png')  # 保存图片
plt.show()

在这里插入图片描述

2.使用自编函数绘图并添加文本

通常情况下,在使用不同的数据重复的绘制同样的图形时,选择自编函数来进行绘图。有时候也会需要在图上添加文本标注。pyplot 模块中,使用 matplotlib.pyplot.text() 函数能够在任意位置添加文本,其使用基本语法如下。
matplotlib.pyplot.text (x, y, s, fontdict=None, withdash=False, **kwargs)

def my_plotter(ax, x, y, param_dict):
    '''
    ax 接收绘图对象
    x  接收 array 表示横轴数据 无默认值
    y  接收 array 表示纵轴数据 无默认值
    param_dict 接收 dict 表示传入参数 无默认值
    '''
    out = ax.plot(x, y, **param_dict)
    return out
# 以如下方式使用函数 :
x = [0, 1, 2, 3, 4, 5, 6, 7, 8]
y1 = x
y2 = np.sin(x)
fig, (ax1, ax2) = plt.subplots(1, 2)
my_plotter(ax1, x, y1, {'marker': 'x'})
my_plotter(ax2, x, y2, {'marker': 'o'})
ax1.text(x[4], y1[4], 'y=x')  # 在子图 1 添加‘ y=x ’
ax2.text(x[4], y2[4], 'y=sin(x)')  # 在子图 2 添加‘ y=sin ( x )’
plt.savefig('./tmp/ 自编函数绘图并添加文本.png')
plt.show()

在这里插入图片描述

3.使用 use 函数就可以直接设置预设风格

Matplotlib 中, pyplot 的一个子模块 style 里面定义了很多预设风格,方便进行风格转换。每一个预设的风格 style 都储存在一个以 .mplstyle 为后缀的 style 文件。我们可以在 stylelib 文件夹中查看。
通过 print(plt.style.available) 命令可以查看所有预设风格的名称,使用 use 函数就可以直接设置预设风格。
查看预设风格:

print('Matplotlib 中预设风格为: \n', plt.style.available)

在这里插入图片描述
使用预设风格:

x = np.linspace(0, 1, 1000)
plt.title('y=x^2 & y=x')  # 添加标题
plt.style.use('ggplot')  # 使用 ggplot 风格
plt.plot(x, x ** 2)
plt.plot(x, x)
plt.legend(['y=x^2', 'y=x'])  # 添加图例
plt.savefig('./tmp/plt风格.png')  # 保存图片
plt.show()

在这里插入图片描述
当然也能新建 mplstyle 文件来自定义绘图风格。在 stylelib 文件夹下创建好文件并按照规范配置属性同样能够使用 use 函数来调用该风格。

4.动态 rc 参数

1.线条常用的 rc 参数

管理线条属性的 rc 参数 lines 几乎可以控制线条的每一个细节, 线条常用的 rc 参数修改前后对比示例如下代码:

import matplotlib as mpl
pic = plt.figure(dpi = 80, figsize = (6, 6))
x = np.linspace(0, 1, 1000)
# 绘制第一张图(从左往右从上到下)
pic.add_subplot(2, 2, 1)  # 绘制 2 × 2 图形阵中第 1 张图片
plt.rcParams['lines.linestyle'] = '-.'  # 修改线条类型
plt.rcParams['lines.linewidth'] = 1  # 修改线条宽度
plt.plot(x, x ** 2)
plt.title('y = x^2')
# 绘制第二张图
pic.add_subplot(2, 2, 2)
mpl.rc('lines', linestyle = '--', linewidth = 10)  # 以 matplotlib.rc() 函数命令方式修改 rc 参数
plt.plot(x, x ** 2)
plt.title('y = x^2')
# 绘制第三张图
pic.add_subplot(2, 2, 3)
plt.rcParams['lines.marker'] = None  # 修改线条上点的形状
plt.rcParams['lines.linewidth'] = 3
plt.plot(x, x ** 2)
plt.title('y = x^2')
# 绘制第四张图
pic.add_subplot(2, 2, 4)
plt.rcParams['lines.linestyle'] = ':'
plt.rcParams['lines.linewidth'] = 6
plt.plot(x, x ** 2)
plt.title('y = x^2')
plt.savefig('./tmp/线条rc参数对比.png')
plt.show()

在这里插入图片描述
针对线条常用的 rc 参数名称、解释与取值如表:
在这里插入图片描述
其中 lines.linestyle 参数 4 种取值的意义:
在这里插入图片描述
lines.marker 参数的 20 种取值及其所代表的意义:
在这里插入图片描述

2.坐标轴常用的 rc 参数

同样,管理坐标轴属性的 rc 参数 axes 也能控制坐标轴的任意细节。坐标轴常用的 rc 参数修改如下代码:

x = np.linspace(0, 10, 1000)
plt.plot(x, np.sin(x))
plt.show()

在这里插入图片描述

x = np.linspace(0, 10, 1000)
plt.rcParams['axes.edgecolor'] = 'b'  # 轴颜色设置为蓝色
plt.rcParams['axes.grid'] = True  # 添加网格
plt.rcParams['axes.spines.top'] = False  # 去除顶部轴
plt.rcParams['axes.spines.right'] = False  # 去除右侧轴
plt.rcParams['axes.xmargin'] = 0.1  # x 轴余留为区间长度的 0.1 倍
plt.plot(x, np.sin(x))
plt.show()

在这里插入图片描述
更多的坐标轴常用 rc 参数名称、接收、取值如下:
在这里插入图片描述

3.字体常用的 rc 参数

由于默认的 pyplot 字体并不支持中文字符的显示,因此需要通过修改 font.sans-serif 参数来修改绘图时的字体,使得图形可以正常显示中文。同时,由于修改字体后,会导致坐标轴中负号“ - ”无法正常显示,因此需要同时修改 axes.unicode_minus 参数。参数修改前后对比如下代码:

# 原图
x = np.arange(0, 10, 0.2)
y = np.sin(x)
fig = plt.figure()
fig.add_subplot(111)
plt.title('sin 曲线 ')
plt.plot(x, y)
plt.savefig('./tmp/sin曲线1.png')
plt.show()

在这里插入图片描述

# 修改参数后
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置字体为 SimHei
plt.rcParams['axes.unicode_minus'] = False  # 解决负号“ - ”显示异常
plt.title('sin 曲线 ')
plt.plot(x, y)
plt.savefig('./tmp/sin曲线2.png')
plt.show()

在这里插入图片描述
除字体与符号编码参数外,更多的字体常用 rc 参数 名称、接收、取值如下表:
在这里插入图片描述
如果希望 rc 参数恢复到缺省的配置( matplotlib 载入时从配置文件读入的配置),可以调用 matplotlib.rcdefaults() 函数。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值